dhb*_*beg 6 javascript safari http http-status-codes
我们目前正在参与由我们大学主办的项目.
我们应该打开一个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");
}
}
},
Run Code Online (Sandbox Code Playgroud)
此代码在每个浏览器(Chrome,Firefox,Opera的最新版本)中都能正常运行,响应正在进行并正在运行.但是,在Safari中,控制台发出错误:
无法加载资源:Die Netzwerkverbindung wurde unterbrochen.
(无法加载资源:网络连接丢失.)
在调试器中,我们发现load.status变量包含零,而在if分支中检查了200.
这仅在iOS设备和Macbook上的Safari中出现,代码与上面列出的浏览器一起使用.
在来自服务器的日志中,我们看到请求到达服务器并生成了正确的响应,就像其他浏览器一样,但状态代码在Safari中保持为0,连接关闭且没有进一步的通信.这也在多个设备上进行了测试,所有设备都使用最新的Safari/iOS/OSX版本.
| 归档时间: |
|
| 查看次数: |
644 次 |
| 最近记录: |