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

Posted

技术标签:

【中文标题】Chrome 新版本 73.0.3683.75 的 Ajax 调用错误?【英文标题】:Ajax call bug with Chrome new version 73.0.3683.75? 【发布时间】:2019-08-04 20:07:17 【问题描述】:

我的代码在 Chrome 更新之前运行良好。

我对我的服务器进行了 ajax 调用。我的服务器收到呼叫,向客户端返回 JSON,但答案始终为空。当我查看 Fiddler 时,我会从服务器得到答案。

我尝试使用 JQuery,也尝试使用 xmlhttp 调用。总是一样的结果

是否应用了新的 CORS 政策规则...?

有我的 xmlHTTP 调用

 var xmlhttp = new XMLHttpRequest();   // new HttpRequest instance 
      var theUrl = "URL";
      xmlhttp.open("POST", theUrl);
      xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
      xmlhttp.send(' "args" : "Obj":"my obj"');
      xmlhttp.onreadystatechange = function(state,xhh,aaa)
        if (xmlhttp.readyState == XMLHttpRequest.DONE) 
          alert(xmlhttp.responseText);
        
      

ajax调用类似

$.ajax(
        url: "URL",
        data: ' "args" : "Obj":"my obj"',
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        type: "POST",
        async: false,       
        error: function (xhr, ajaxOptions, thrownError) 
          if (that.Fail != null) 
            that.Fail();
          
        ,
        success : function(data)

           alert(data);

        
      )

【问题讨论】:

您是否在内容脚本中提出请求?如果是这样,如果您从后台脚本制作它会有所帮助吗?否则这听起来像是一个错误,看看在 chrome://flags 中禁用“网络服务”是否有帮助。 @wOxxOm 是的,我在当时的内容脚本中。我会尝试将我的脚本放在后台脚本中。 我意识到它看起来有点奇怪。出于安全原因,他们不允许您从 content.js 创建调用。安全问题,当您发送数据时,可能比您收到的更多。我的电话是正确的,这是我无法回复的答案。如果我是一个“黑客”,我不在乎答案,我的首要任务应该是发送数据,而不是从我的服务器中检索它......我不明白这里的举动......那个更新破坏了我们的 Chrome 扩展和给我们很多工作:-( 您可以通过发出 GET 请求来发送数据 - 只需将数据放入 URL 哈希或其查询参数中。一个 URL 可以是 2MB 长。 @wOxxOm 你是对的。这是我的意思,为什么他们不只是阻止来自 content.js 的所有 CORB 请求,而是只收到答案。 【参考方案1】:

升级到 Chrome 73 后我遇到了同样的问题。感谢@wOxxOm

这是迄今为止的解决方法:

    转到 chrome://flags 禁用启用网络服务


更新:

这不是错误,根据此公告:https://www.chromium.org/Home/chromium-security/extension-content-script-fetches

您需要将 Cross-Origin Fetches 放到后台脚本而不是内容脚本中。

【讨论】:

谢谢你的快速回答。很有用。那是我的问题!我在 background.js 中移动了我的 ajax 调用,现在它可以工作了。给我一些工作,将 content.js 中的所有调用移至 background.js,但是......我走对了!

以上是关于Chrome 新版本 73.0.3683.75 的 Ajax 调用错误?的主要内容,如果未能解决你的问题,请参考以下文章

Flexbox 渲染被最新的 Chrome 破坏

python 关于函数递归调用自己

在存在PDF iframe的文本选择之后,文本输入开始向后键入

SVG sprite 图标背景位置在较新版本的 Chrome 中显示为关闭

chrome新版本flash无法在http网站上运行的解决办法

Karma Istanbul 修复程序可与新版本的 Chrome 一起使用