aoma blog

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

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

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です。

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