Javascript 为什么Chrome有时会发出2个AJAX请求而不是1个?

Javascript 为什么Chrome有时会发出2个AJAX请求而不是1个?,javascript,ajax,google-chrome,Javascript,Ajax,Google Chrome,我在OSX上遇到了谷歌Chrome44.0.2403.157当前版本的一个奇怪行为 当我使用方法GET执行AJAX XHR请求时,我的Chrome有时发出1个请求,有时发出-2 我的代码: var jsUrl = 'http://www.some-domain.com/xy.js'; var ajax = new XMLHttpRequest(); ajax.withCredentials = true; ajax.open( 'GET', jsUrl, true ); // asyn

我在OSX上遇到了谷歌Chrome44.0.2403.157当前版本的一个奇怪行为

当我使用方法GET执行AJAX XHR请求时,我的Chrome有时发出1个请求,有时发出-2

我的代码:

var jsUrl = 'http://www.some-domain.com/xy.js';

var ajax = new XMLHttpRequest();
  ajax.withCredentials = true;
  ajax.open( 'GET', jsUrl, true ); // async, because sync cannot be send with cookies
  ajax.onreadystatechange = function () {
      var script = ajax.response || ajax.responseText;
      if (ajax.readyState === 4) {
          switch( ajax.status) {
              case 200:
              case 304:
                eval.apply( window, [script] );
                // no break on purpose here
              default:
                someFunction();
          }
      }
  };
  ajax.send(null);
当发出2个请求时,my developer console的屏幕截图:

服务器日志确认正在发出第二个请求-它不只是在控制台中

第二个请求的头实际上与第一个请求的头相同-唯一的区别是cookie的值随着上面屏幕上的第三个请求而改变

请注意,OS X上当前版本的Firefox 40.0.3没有显示此行为-此处仅发出1个请求,每次都通过使用Firebug观察请求(显示BFCache请求)和观察服务器日志进行测试

有一段时间,我认为使用send和sendnull会有所不同——当使用send时,只会发出一个请求——但经过更多的测试,我发现这两种语法都存在奇怪之处


你能告诉我这里发生了什么吗?

如果这确实发生了,那么我认为这将是一个chrome bug。“我会使用数据包分析器来确认这一点,这似乎有点难以置信。当我通过查看服务器日志来确认发出了双重请求时,我不认为我需要使用数据包分析器,@dave。”。或者你认为我会在那里看到更多吗?我认为这是值得检查的,因为这是一个如此奇怪的问题。