1. ホーム
  2. javascript

[解決済み] xmlHttpRequest.onerror ハンドラ使用例

2022-02-07 13:23:55

質問

どのような場合にこのハンドラが呼び出されるのでしょうか?このメソッドがエラーを投げるような例は見当たりません。

デバイスがオフラインの状態で試したところ、次のようになりました。 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

解決方法は?

あなたの質問は、まさにその例です。このページにいる間に、ウェブ開発者コンソールからあなたのコードを試してみてください。

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

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を扱う場合、あらゆる種類のことが起こり得ます。クロスオリジンリクエストはそのひとつに過ぎません。サーバーがオフラインになったり、DNSルックアップに失敗したり、サーバーとあなたの間のルーターがダウンしたり、重要な障害点があったらどうでしょう?