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

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版本.