我们目前正在参与由我们大学主办的项目 我们应该打开一个包含一些数据的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版本。