読者です 読者をやめる 読者になる 読者になる

jQuery 3.xでajax()でエラーになったときに疑う箇所

なるほど、jQuery 3.0では多くの非推奨メソッドが削除されて2.xで動いていたものが動かなくなることがある

詳しくは以下のサイトが詳しい

【翻訳まとめ】jQuery 3.0 alpha リリースノート - Qiita

中でもajax()で若干ハマったのでメモ

success() error() complete() は廃止された

彼らはもういない

ソースは

http://api.jquery.com/jQuery.ajax/api.jquery.com

に以下のように明記されている

Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks are removed as of jQuery 3.0. You can use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.

別にいきなり始まった話ではなく、すでに1.8以降では

Deprecation Notice: The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks will be deprecated in jQuery 1.8. To prepare your code for their eventual removal, use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.

と非推奨メソッドになってたんだし妥当

どうなるの

こんな感じ

$.ajax({
  type: "GET",
  url: 'http://localhost:3000/text.php',
  data: {name: 'taro},
  timeout: 3000
}).done(function(data){
  console.log(data);
}).fail(function(data){
  console.log('error',data);
}).always(function(data){
  console.log('always called');
});

$.getjson()?知らない子ですね