0

我有一个非常独特的设置,我想它会对这个问题产生一些影响(我以前从未见过)。

我正在编写一个 Google Chrome 扩展程序,并且我依赖 Node.js 作为我的后端。

当我运行多个 Ajax 请求时,Node.js 需要很长时间才能响应(例如,2.5 秒),一些 Ajax 请求永远不会收到响应并引发错误。

我在我的 Node.js 服务器中设置了一个测试函数,它将在等待 2500 毫秒后以 JSON 对象响应。我已经确认这适用于单个请求。

然后,我尝试在扩展中嵌入 jQuery 并尝试两个请求:

            (function(){
               $.ajax({
                  url : url,
                  data : params,
                  type : "POST",
                  success : function(data){
                     alert('success1');
                  },
                  error : function(xmlhttprequest, textstatus, message) {
                     alert('error');

                  }
               });
            })();
            (function(){
               $.ajax({
                  url : url,
                  data : params,
                  type : "POST",
                  success : function(data){
                     alert('success2');
                  },
                  error : function(xmlhttprequest, textstatus, message) {
                     alert('error');

                  }
               });
            })();

在这种情况下,只调用第二个警报。第一个最终会导致错误(超时)。

我也尝试过不使用 jQuery,如下所示:

        var xhr = new XMLHttpRequest();
        xhr.open("POST", url, true);

        xhr.onreadystatechange = function() {
            alert('response1');
        }
        xhr.send();

        var xhr2 = new XMLHttpRequest();
        xhr2.open("POST", url, true);
        xhr2.onreadystatechange = function() {
            alert('response2');
        }
        xhr2.send();

在这种情况下,两个请求都失败了;我没有收到任何一方的回复。

我还在后台脚本中尝试过这段代码,在自动生成的后台页面上运行。这也失败了(都不成功)。

我猜这在某种程度上与我在这里写的非常小众的案例有关,但在这一点上,我真的站在如何排除故障和继续前进的立场上。有什么想法可以进一步探索这个问题吗?

谢谢!凯文

4

0 回答 0