Javascript Safari返回状态代码0,而其他浏览器工作正常
我们目前正在参与一个由我们大学主办的项目。Javascript Safari返回状态代码0,而其他浏览器工作正常,javascript,http,safari,http-status-codes,Javascript,Http,Safari,Http Status Codes,我们目前正在参与一个由我们大学主办的项目。 我们应该打开一个JSON文件,其中包含一些由web服务器提供的数据 此场景中使用的代码如下所示: listeAbrufen: function() { var load = new XMLHttpRequest(); load.open("POST", Artikel.linkToServer, true); //Link to server load.setRequestHeader("Content-Type","appli
我们应该打开一个JSON文件,其中包含一些由web服务器提供的数据 此场景中使用的代码如下所示:
listeAbrufen: function() {
var load = new XMLHttpRequest();
load.open("POST", Artikel.linkToServer, true); //Link to server
load.setRequestHeader("Content-Type","application/json;charset=UTF-8");
var json = {'requestType':'GETDB','DBPATH':'/db/artikel/getList'};
load.send(JSON.stringify(json));
load.onreadystatechange = function() {
/* Request bearbeitet */
if (load.readyState == 4 && load.status == 200) {
var response = JSON.parse(load.responseText);
console.log("listeAbrufen response:"+JSON.stringify(load.responseText));
if (response['response'] == "OK" ) {
Artikel.liste = response['list'];
console.log("listeABrufen Artikelliste: " + JSON.stringify(Artikel.liste));
Artikel.listeAnzeigen("speisekarte__artikel", false);
Error.hide();
} else {
Error.show(response['errorcode'],response['message']);
}
} else if (load.readyState >= 4) {
Error.show("keineVerbindung");
}
}
},
这段代码在每种浏览器(最新版本的Chrome、Firefox、Opera)中都运行良好,响应正在到来并正在运行。但是,在Safari中,控制台出现错误:
未能加载资源:Die Netzwerkverbindung wurde unterbrochen。(加载资源失败:网络连接丢失。) 在调试器中,我们发现
load.status
变量包含零,而它在if分支中检查了200
这同样只发生在iOS设备和MacBook上的Safari中,代码与上面列出的浏览器一起工作
在服务器的日志中,我们看到请求到达服务器并生成正确的响应,就像其他浏览器一样,但状态代码在Safari中保持为0,连接关闭,没有进一步的通信发生。这也在多个设备上进行了测试,所有设备都使用最新的Safari/iOS/OSX版本。console.log('Response headers',load.getAllResponseHeaders())的输出是什么和
console.log('Response text',load.responseText)是否在Safari上的if
块中设置code>?