jQuery で$.ajax エラーを処理する
今日の記事では、jQuery の AJAX での失敗リクエストの処理について説明します。
jQuery での $.ajax
エラーの処理
jQuery の AJAXpost リクエストは、非同期 HTTP(AJAX)リクエストを実行します。
構文:
jQuery.ajax([settings]).fail((jqXHR, textStatus) => {});
jQuery.ajax(url[, settings]).fail((jqXHR, textStatus) => {});
ここで:
URL
は、リクエストの送信先となる URL を含む文字列です。settings
は、AJAX 要求を構成するキー/値のペアオブジェクトです。すべての設定はオプションです。$.ajaxSetup()
を使用して、オプションごとにデフォルト値を設定できます。
.fail()
アプローチは、廃止された .error()
アプローチに取って代わります。これは、エラーコールバックオプションの代替構成です。
リクエストが失敗した場合、AJAX
構成内で error
コールバックオプションが呼び出されます。jqXHR
、エラータイプを示す文字列、および例外オブジェクト(存在する場合)を受け取ります。
一部の組み込みエラーは、abort
、timeout
、no transport
などの文字列を例外オブジェクトとして返します。
$.ajax()
は、ブラウザのネイティブ XMLHttpRequest
オブジェクトのスーパーセットである jQuery XMLHttpRequest
(jqXHR
)オブジェクトを返します。
次の例でそれを理解しましょう。
注:次のコードはそのまま実行することはできず、出力されません。出力を表示するには、既存のコードに追加する必要があります。
HTML コード:
<form id="myForm">
<label for="name">Name</label>
<input id="name" name="name" type="text" value="Smith" />
<input type="submit" value="Send" />
</form>
JavaScript コード:
$('#myForm').submit(function(event) {
event.preventDefault();
$.ajax({
method: 'POST',
url: '/open/hello-world',
data: {name: 'Smith', location: 'United State'},
error: function(jqXHR, thrownError) {
alert(jqXHR.status);
alert(thrownError);
}
})
.done(function(msg) {
alert('Data Saved: ' + msg);
})
.fail((jqXHR, errorMsg) => {alert(jqXHR.responseText, errorMsg)});
})
上記の例では、ユーザーがフォームを送信すると、指定された URL とパラメーターを使用して AJAX 呼び出しがサーバーに送信されます。サーバーが成功したメッセージで戻ってきたら、コンソールにメッセージを印刷するか、適切なメッセージでユーザーに通知することができます。
サーバーがエラーメッセージを返した場合は、エラーハンドラーまたは .fail()
を使用してエラーをキャッチし、適切なエラーメッセージをユーザーに通知できます。
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn