hnwの日記

jQueryでJSONPを使ってみたらエラーが取れない

jQueryで遊んでみました。$.ajax()で、別サイトのAPIを叩いてJSONPでデータをもらってきて、そのデータをJavaScriptで加工する、なんてことが簡単にできました。jQuery便利ですね。(他のJavascriptライブラリと比べて便利かどうかはわかりませんけど)


ところで$.ajax()でJSONPを使った場合に、アクセスしたURLから401とか403とか404とかを返されると実行が止まってしまうようです。errorプロパティにエラーハンドリングの関数を書いてみたり、ajaxError()を使ってみたりしたんですがどうにもダメでした。


同じ悩みを持った方が僕以外にも居るようです。


3番目の記事を書いた方は「scriptタグにonerrorつければいいんじゃね?」という指摘です。もしクロスブラウザ対応可能ならjQueryでも採用してくれないかなー、というのが軟弱な僕の感想です。


僕は解決をあきらめて一定時間結果が帰ってこない(=アクセスに時間がかかっているか、404などで実行が止まっている)状態ならエラー扱いにしました。ナイスな解決策をご存知の方は教えてください。と投げっ放しで終わります。

'); $entries_chunk.insertBefore(sections[0]); } else { chunk_id += 1; var $prev_entries_chunk = $entries_chunk; var $read_more_link = $('

これ以前の記事を表示する

'); $read_more_link.on('click', {chunk_id: chunk_id}, function(e){ $(e.target).hide(); $(this).remove(); $('#entries-chunk-' + e.data.chunk_id).fadeIn("slow"); }); $prev_entries_chunk.append($read_more_link); var $entries_chunk = $('
'); $entries_chunk.hide(); $entries_chunk.insertAfter($prev_entries_chunk); } } $(sections[i]).appendTo($entries_chunk); } });