私は非常にユニークな設定をしていますが、これはこの問題に何らかの影響を与えていると思います (これまでに見たことがない)。
私は Google Chrome 拡張機能を作成しており、バックエンドとして Node.js に依存しています。
複数の Ajax リクエストを実行すると、Node.js の応答に時間がかかります (たとえば、2.5 秒)。一部の Ajax リクエストは応答を受信せず、エラーをスローします。
Node.js サーバーに、2500 ミリ秒待機した後に JSON オブジェクトで応答するテスト機能をセットアップしました。これが単一のリクエストで機能することを確認しました。
次に、拡張機能に jQuery を埋め込んで、次の 2 つのリクエストを試してみました。
(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');
}
});
})();
この場合、2 番目のアラートのみが呼び出されます。最初のものは最終的にエラー (タイムアウト) になります。
次のように、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();
この場合、両方の要求が失敗します。どちらからも返事がありません。
また、自動生成されたバックグラウンド ページで実行されるバックグラウンド スクリプトでこのコードを試しました。これも失敗します (どちらの成功も機能しません)。
これは、私がここに書いている非常にニッチなケースに何らかの形で関連していると思いますが、この時点で、トラブルシューティングを行って前進する方法についての立場に立っています. この問題をさらに調査するためのアイデアはありますか?
ありがとう!ケビン