Chrome与Firefox XHR请求存在差异

时间:2015-07-21 11:32:04

标签: javascript google-chrome firefox xmlhttprequest offline-browsing

在玩XHR请求时,我发现有趣的事情是从两个主流浏览器(Google的Chrome和Mozilla的Firefox)发出XHR请求。 请求是对HEAD的简单www.google.ba请求:

var xhr = new XMLHttpRequest();
xhr.open('HEAD' , 'www.google.ba', true);

xhr.onreadystatechange = function (aEvt){
  if (xhr.readyState == 4) {
    if (xhr.status >= 200 && xhr.status < 304) {
      console.log('Connected');
    } else {
      console.log('No net');
    }
  }
};

xhr.send();

在没有连接的情况下尝试发出XHR请求后,我会在两个浏览器上获得readyState 4和status 0。重新连接后 - 从两个浏览器发出XHR请求都成功了。

但事情就是这样,在我再次断开连接并提出请求后,Chrome在9毫秒后返回readyState 4和状态0,但Firefox仍处于某种待处理状态并等待net返回。当我在13秒后重新连接时,请求已成功处理。即使在13秒后我在Firefox上也没有获得状态0。有没有人可以解释这些巨大的差异以及如何在Firefox上阻止这种行为?

Chrome屏幕截图:

enter image description here

Firefox的屏幕截图:

enter image description here

修改

似乎Firefox无法检测离线模式,只有当我在浏览器中选择work offline时才能获得与Chrome相同的结果。有没有办法获得与Chrome相同的结果?

0 个答案:

没有答案