呼び出されたとき(404
、401
、403
、500
、など...)XHRオブジェクトのreadyStateのに見て、中絶エラーを要求する(つまり、ユーザーがEscキーを押すか、ナビゲートします要求が中止された場合、他のページ)、あなたはXHR.statusプロパティを確認することができ、ステータスメンバーはゼロになります。
document.getElementById('element').onclick = function() {
postRequest ('test/', null, function (response) { // success callback
alert('Response: ' + response);
}, function (xhr, status) { // error callback
switch(status) {
case 404:
alert('File not found');
break;
case 500:
alert('Server error');
break;
case 0:
alert('Request aborted');
break;
default:
alert('Unknown error ' + status);
}
});
};
シンプルpostRequest機能:
function postRequest (url, params, success, error) {
var xhr = XMLHttpRequest ? new XMLHttpRequest() :
new ActiveXObject("Microsoft.XMLHTTP");
xhr.open("POST", url, true);
xhr.onreadystatechange = function(){
if (xhr.readyState == 4) {
if (xhr.status == 200) {
success(xhr.responseText);
} else {
error(xhr, xhr.status);
}
}
};
xhr.onerror = function() {
error(xhr, xhr.status);
};
xhr.send(params);
}
上記のスニペットを実行しますhere。
出典
2009-09-18 04:03:37
CMS
「XHRエラー()関数」とは何ですか? 'XmlHttpRequest'インスタンスにはそのようなメソッドはありません。 – JPot
が表示されます。明らかに、「ほとんどの」ブラウザでサポートされている「onerror」イベントがあります。 ref:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget/onerror – rogerdpack