ウェブで調べていますが、ドキュメントを見つけるのは困難です。ブラウザの組み込みXMLHttpRequest
オブジェクトを使用した基本的な AJAX 呼び出しは誰でも知っています (ここでは最新のブラウザを想定しています)。
var xmlHttp = new XMLHttpRequest(); // Assumes native object
xmlHttp.open("GET", "http://www.example.com", false);
xmlHttp.send("");
var statusCode = xmlHttp.status;
// Process it, and I'd love to know if the request timed out
では、ブラウザで XMLHttpRequest オブジェクトを調べて、AJAX 呼び出しがタイムアウトしたことを検出する方法はありますか? 次のようなことをすることをお勧めしますかwindow.setTimeout(function() { xmlHttp.abort() }, 30000);
?
ありがとう!
-マイク
ベストアンサー1
最近のブラウザ(2012)の中には、 に頼らずにこれを実行するものもありますsetTimeout
。これは XMLHttpRequest に含まれています。回答を見るhttps://stackoverflow.com/a/4958782/698168:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
alert("ready state = 4");
}
};
xhr.open("POST", "http://www.service.org/myService.svc/Method", true);
xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
xhr.timeout = 4000;
xhr.ontimeout = function () { alert("Timed out!!!"); }
xhr.send(json);