jQuery Ajax POST エラー処理
jQueryでAjaxクエリのPOSTエラーを捕捉する方法
JavaScript
$.ajax({
type: "POST",
url: "your_url",
data: {
// ここにPOSTするデータ
},
success: function(response) {
// 成功した場合の処理
console.log("Success:", response);
},
error: function(xhr, status, error) {
// エラーが発生した場合の処理
console.error("Error:", xhr.status, status, error);
}
});
解説
- $.ajax()
jQueryのAjaxメソッドです。 - type: "POST"
HTTPメソッドをPOSTに設定します。 - url: "your_url"
リクエストを送るURLを指定します。 - data: { ... }
POSTするデータをオブジェクト形式で指定します。 - success: function(response)
リクエストが成功した場合に実行される関数を指定します。 - error: function(xhr, status, error)
リクエストがエラーになった場合に実行される関数を指定します。
エラー情報を取得する方法
- error
エラーメッセージを取得します。 - status
エラーの種類を取得します。- 例: "error"、"timeout"、"abort"
- xhr.status
HTTPステータスコードを取得します。- 例: 404 (Not Found)、500 (Internal Server Error)
エラーハンドリングの例
$.ajax({
// ...
error: function(xhr, status, error) {
if (xhr.status === 404) {
// 404エラーの処理
alert("ページが見つかりません");
} else if (xhr.status === 500) {
// 500エラーの処理
alert("サーバーエラーが発生しました");
} else {
// その他のエラーの処理
alert("エラーが発生しました: " + error);
}
}
});
$.ajax({
type: "POST",
url: "your_url",
data: {
// ここにPOSTするデータ
},
success: function(response) {
// 成功した場合の処理
console.log("Success:", response);
},
error: function(xhr, status, error) {
// エラーが発生した場合の処理
console.error("Error:", xhr.status, status, error);
// エラーの種類に応じて異なる処理を行う
if (xhr.status === 404) {
// 404エラーの処理
alert("ページが見つかりません");
} else if (xhr.status === 500) {
// 500エラーの処理
alert("サーバーエラーが発生しました");
} else {
// その他のエラーの処理
alert("エラーが発生しました: " + error);
}
}
});
- 500エラーの場合、「サーバーエラーが発生しました」というメッセージを表示します。
- 404エラーの場合、「ページが見つかりません」というメッセージを表示します。
$.ajax({
// ...
}).then(function(response) {
// 成功した場合の処理
}, function(xhr, status, error) {
// エラーが発生した場合の処理
});
then()
メソッドを使用して、成功と失敗の処理をチェーンすることができます。
async/await
async function fetchData() {
try {
const response = await $.ajax({
// ...
});
// 成功した場合の処理
} catch (error) {
// エラーが発生した場合の処理
}
}
fetchData();
async/await
を使用すると、非同期処理を同期的なコードのように記述できます。
Custom Error Handling
function handleAjaxError(xhr, status, error) {
// エラーが発生した場合の共通処理
}
$.ajax({
// ...
error: handleAjaxError
});
- エラーが発生した場合に共通の処理を行う関数を定義し、
error
オプションに渡すことで、エラー処理を再利用できます。
jQueryのグローバルエラーハンドラー
$(document).ajaxError(function(event, xhr, settings, exception) {
// 全てのAjaxリクエストのエラーを捕捉
});
ajaxError()
メソッドを使用すると、全てのAjaxリクエストのエラーを捕捉することができます。
選択基準
- グローバルなエラー処理
全てのAjaxリクエストのエラーを捕捉したい場合は、jQueryのグローバルエラーハンドラーを使用します。 - エラー処理の共通化
カスタムエラーハンドラーを使用することで、エラー処理を再利用できます。 - コードの可読性
async/await
は同期的なコードのように記述できるため、可読性が高くなります。
jquery ajax post