在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 73后我遇到了同样的问题。感谢@wOxxOm
这是迄今为止的解决方法:
更新:
根据这个公告,这不是一个错误:https://www.chromium.org/Home/chromium-security/extension-content-script-fetches
您需要将Cross-Origin Fetches放入后台脚本而不是内容脚本。