问题
My code was working fine before the Chrome update.
I make an ajax call to my server. My server receives the call, returns JSON to the client, but the answer is always empty. When I look in Fiddler I get an answer from the server.
I try with JQuery, and I also try with an xmlhttp call. Always the same result
Did new CORS policy rules apply...?
There is my xmlHTTP call
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);
}
}
The ajax call is similar
$.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);
}
})
回答1:
I had the same problem after upgrade to Chrome 73. Thanks to @wOxxOm
This is the workaround until now:
- Go to chrome://flags
- Disabled the Enable network service
UPDATE:
This is not a bug, according to this announcement: https://www.chromium.org/Home/chromium-security/extension-content-script-fetches
You will need to put the Cross-Origin Fetches to the background script instead of the content script.
来源:https://stackoverflow.com/questions/55153888/ajax-call-bug-with-chrome-new-version-73-0-3683-75