私はウェブ上を見ていますが、ドキュメントは手に入りにくいです。我々は、すべての(ここでは近代的なブラウザを想定)を内蔵していますXMLHttpRequest
オブジェクトブラウザを使用して、基本的なAJAX呼び出しを知っている:ブラウザのAJAX(XmlHttpRequest)コールでタイムアウトを検出するにはどうすればよいですか?
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);
のようなことをするように勧められますか?
ありがとうございます!
2014年に、この回答は正しいものとしてタグ付けされる必要があります。今日では、ほとんどすべてのブラウザがこれをサポートしています(IE8以降)。 –
まあまあ、ontimeoutイベントがAFTER readyState == 4がトリガーされるまで起動されないという警告はありません。これは非直感的であるだけでなく、タイムアウトがあったためにアップロードが成功しなかったかどうかに基づいて条件付きの動作を作成することを困難にします。たとえば、アップロードが失敗した理由に関するユーザーアラートをカスタマイズします。私の状況では、私はsetTimeoutで欲しいものを達成することしかできないことがわかった。また、xhr.timeoutは2016年のSafariでは動作しないようです。 – Allasso