タイトルだけではわからないので、詳細説明。
CakePHPで開発していて、ViewでjQueryを使っています。んで、Ajax使いたくて$.getJSON
を使いました。組み込んだ当時は動作していたんだけど、昨日急に動作しなくなった。
長年(jQuery歴3ヵ月^^;)のかんで、jQueryのjson系で動作しない場合は、jsonの構文が間違えていてエラーがでるってのがほとんどだと思っていたので、$.getJSON
をデバッグすることにしました。
あれ? そういえばどうやってデバッグするんだろ?
時間かかったが、できたのでメモ
$.getJSON()をデバッグ
try 〜 catchを使ってみた。
すぐ思いついたのはこの構文。でもダメでした。
try { $.getJSON('/url/hogehoge', function(data){ }); } catch (e) { console.log(e); }
どうしてダメなのかはわかりませんが、まぁなんか見た目から変ですよね。(スコープが違うし)
ぐぐったらあった
うちのネットは遅いので、ネットを使うのが結構ストレス(本末転倒な気がします)。最近すぐググるのはやめて、エラーメッセージを読み解く、またはソースを読むようにしていました。
今回も粘っていたんですが、さすがにイライラしたのでぐぐってみたところ。どうやらハンドリングの手法がありました。
$.getJSON('/url/hogehoge', function(data){ }).success(function(json) { console.log("成功"); }) .error(function(jqXHR, textStatus, errorThrown) { console.log("エラー:" + textStatus); console.log("テキスト:" + jqXHR.responseText); }) .complete(function() { console.log("完了"); });
ラッキー! さっそく実装して実行。
・・・・・? parse errorであることはわかりましたが、何やらよくわからないメッセージが・・・・?
Notice (´・ω・)?
! おっと。わかっちまったぜ。