1. ホーム
  2. jquery

[解決済み】Ajaxクエリポストエラーをキャッチする方法は?

2022-04-05 14:06:11

質問

Ajaxリクエストに失敗した場合、エラーをキャッチして適切なメッセージを表示したいのですが。

私のコードは以下のようなものですが、Ajaxリクエストの失敗をキャッチすることができませんでした。

function getAjaxData(id)
{
     $.post("status.ajax.php", {deviceId : id}, function(data){

        var tab1;

        if (data.length>0) {
            tab1 = data;
        }
        else {
            tab1 = "Error in Ajax";
        }

        return tab1;
    });
}

Ajaxリクエストに失敗した場合、quot;Error in Ajax"は実行されないことがわかりました。

Ajaxエラーが発生した場合、どのように処理し、適切なメッセージを表示すればよいですか?

どのように解決するのですか?

jQuery 1.5以降では、ディファードオブジェクトの仕組みを利用することができます。

$.post('some.php', {name: 'John'})
    .done(function(msg){  })
    .fail(function(xhr, status, error) {
        // error handling
    });

別の方法として .ajax :

$.ajax({
  type: "POST",
  url: "some.php",
  data: "name=John&location=Boston",
  success: function(msg){
        alert( "Data Saved: " + msg );
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
     alert("some error");
  }
});