chrome 更新后,jQuery ajax 调用无法从网页解码为 utf-8 字符集到 Chrome 扩展中

Posted

技术标签:

【中文标题】chrome 更新后,jQuery ajax 调用无法从网页解码为 utf-8 字符集到 Chrome 扩展中【英文标题】:jQuery ajax call can't decode to uft-8 charset from webpage into Chrome Extension after chrome update 【发布时间】:2018-06-02 04:39:07 【问题描述】:

我之前为 google chrome 创建了一个扩展,我使用 jquery ajax 从网页中抓取了一个聊天,并在扩展弹出窗口中显示了一个更好的方式。现在,每个 æ ø å 字符都会显示 unicode 错误 �。

我知道我和网站都没有做任何新的事情或更改字符集。他们仍然在标题中定义了他们的字符集,并且正确的字符显示在他们的页面上。

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

当然,我在我的扩展程序中使用了 uft-8 字符集,但在此之前这不是问题..

我尝试在我的 ajax 调用中将 uft-8 和 ISO-8859-1 都定义为内容类型。现在我对这个问题有点不知所措。字符集错误仅包括聊天,其他所有内容都处于其当前状态,就像从一开始一样。

整个源代码位于: https://github.com/Cmoen11/GS-Chat-Chrome-Extension

有趣的文件:index.js 和 index.html

【问题讨论】:

发布您的 ajax 代码可能会帮助我们帮助您 当然,这里你得到了整个源代码。您可能感兴趣的脚本位于 index.js github.com/Cmoen11/GS-Chat-Chrome-Extension 【参考方案1】:

只需使用事件 beforeSend 更改您的 mime

function fetchData()
...
timeout: 10000,
        contentType: 'Content-type: text/plain; charset=iso-8859-1',
        beforeSend: function(jqXHR) 
            jqXHR.overrideMimeType('text/html;charset=iso-8859-1');
        ,
        success: function (newRowCount) 

...

参考:https://***.com/a/14397845/3396168

【讨论】:

以上是关于chrome 更新后,jQuery ajax 调用无法从网页解码为 utf-8 字符集到 Chrome 扩展中的主要内容,如果未能解决你的问题,请参考以下文章

ajax调用后jQuery更新li类属性href

通过ajax调用更新行后使用jQuery对表进行排序

Chrome 新版本 73.0.3683.75 的 Ajax 调用错误?

Chrome DOM 未针对 jQuery 追加/淡入更新

jquery $.ajax 在 Chrome 或 Firefox 中调用会导致 401 未经授权的响应,但在 IE 中有效

Chrome 中 JQuery 停止和挂起的 ajax 请求