web-dev-qa-db-ja.com

xmlHttpRequest.onerrorハンドラーのユースケース

このハンドラーが呼び出される原因となるのはどのような状況ですか?このメソッドがエラーをスローするインスタンスは見つかりません。

デバイスをオフラインで試してみましたが、xmlHttpRequest.status = 0しかし、エラーはありません。

問題は、このハンドラーの機能をテストするために、どのような状況を作成できるかということです。

var xmlhttp = new XMLHttpRequest(),
  method = 'GET',
  url = 'https://developer.mozilla.org/';

xmlhttp.open(method, url, true);
xmlhttp.onerror = function () {
  console.log("** An error occurred during the transaction");
};
xmlhttp.send();

差出人: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequestEventTarget/onerror

5
Developer

あなたの質問は完璧な例です。このページで、Web開発者コンソールからコードを試してみてください。

enter image description here

ここで、自分で試してみてください。

var xmlhttp = new XMLHttpRequest(),
  method = 'GET',
  url = 'https://developer.mozilla.org/';

xmlhttp.open(method, url, true);
xmlhttp.onerror = function () {
  console.log("** An error occurred during the transaction");
};
xmlhttp.send();

ネットワークベースのIOあらゆる種類のことが発生する可能性があります。クロスオリジンリクエストは1つだけです。サーバーがオフラインの場合、DNSルックアップが失敗し、サーバーとの間のルーターが障害の臨界点が下がっていますか?

2

XHR呼び出しはサーバー応答用であるため、サーバーでエラーが発生するとonerrorが発生します。クライアントをオフラインに変更しても、サーバーエラーはシミュレートされません。

サーバーリソースが移動され、サーバーが404エラーで応答するとしますか?サーバーがタイムアウトした場合はどうなりますか?リクエスト自体の形式が正しくなく、サーバーがエラーをスローした場合はどうなりますか?

0
Scott Marcus