使用Safari,XMLHttpRequest“无法加载资源”

时间:2016-04-06 12:11:51

标签: javascript safari xmlhttprequest

我尝试从微控制器获取带有XMLHttpRequest的数据字符串。 该请求适用于Internet Explorer,Firefox,Chrome和Opera,浏览器Konsole中没有任何错误。 只有Safari出现ERROR问题“无法加载资源:网络连接丢失。” 微控制器仅响应数据串(5字节)。

function httpGetFreq(){
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.onreadystatechange = function() { 
        if (xmlHttp.readyState == 4 && xmlHttp.status == 200){
            freq = parseFloat(xmlHttp.responseText) / 1000;
            animate ();
        }
    }
    xmlHttp.overrideMimeType('text/plain');
    xmlHttp.open("GET", "frequenz", true);
    xmlHttp.send(null);
}

2 个答案:

答案 0 :(得分:0)

" 无法加载资源:网络连接丢失"可能是由于以下原因之一。

  1. XHR请求Content-Length>的页面实际内容长度 在这种情况下,Safari:等待超时,错误事件,"无法加载资源:网络连接丢失。"在控制台

  2. XHR请求Content-Length>的页面实际内容长度以服务器终止突然结束 Safari:错误事件,"无法加载资源:网络连接丢失。"在控制台

  3. 因此,最可能的原因可能是内容长度不匹配,如果收到的内容长度相同或者发送的数据包丢失,请检查线路鲨鱼

答案 1 :(得分:0)

可能还有一种可能性。 Safari之外的浏览器忽略响应类型,例如,如果您发出HTTP请求并且响应是TCP数据包。在这种情况下,Safari会丢弃它,而Chrome等其他浏览器会将其视为HTTP响应。

因此请检查您的HTTP服务器代码是否响应具有HTTP标头。从我的观点来看,这一定是最可能的原因。在Wireshark中检查响应数据包类型,无论是HTTP还是TCP。