aoma blog

エンジニアの日常とか技術とか

jQueryのajaxエラー時にレスポンスボディを取得する方法

この記事は移転しました。約5秒後に新記事へ移動します。
移動しない場合はココをクリックして新サイトをお楽しみください。

jQueryによるajax時のレスポンスボディ取得方法について調べました。

成功時(done)は引数が用意されていてdataで取れますが、エラー時(fail)はなぜか用意されていない。。なぜ?使う機会が少ないからなの??

エラー時はjqXHRを使って'jqXHR.responseJSON'で取得できます。

$.ajax({
    url: url,
    type: 'POST',
    data: data,
    cache: false,
    dataType: 'json',
})
.done(function(data, textStatus, jqXHR){
    console.log(data);
})
.fail(function(jqXHR, textStatus, errorThrown){
    console.log(jqXHR.responseJSON);
});

ちなみにjqXHRとは jQuery XMLHttpRequestの略。

成功時もあるので、datajqXHR.responseJSONでもOKです。

なぜ統一してくれなかったのか。。