Safari返回状态代码0,而其他浏览器工作正常

时间:2016-03-16 22:51:23

标签: 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","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版本。

0 个答案:

没有答案