jQueryで遊んでみました。$.ajax()で、別サイトのAPIを叩いてJSONPでデータをもらってきて、そのデータをJavaScriptで加工する、なんてことが簡単にできました。jQuery便利ですね。(他のJavascriptライブラリと比べて便利かどうかはわかりませんけど)
ところで$.ajax()でJSONPを使った場合に、アクセスしたURLから401とか403とか404とかを返されると実行が止まってしまうようです。errorプロパティにエラーハンドリングの関数を書いてみたり、ajaxError()を使ってみたりしたんですがどうにもダメでした。
同じ悩みを持った方が僕以外にも居るようです。
- http://d.hatena.ne.jp/konk303/20080520/1211294342
- http://rainbowdevil.jp/mt/externalstorage/archives/2008/01/jsonp_1.html
- http://muumoo.jp/news/2007/11/15/0jsonperror.html
3番目の記事を書いた方は「scriptタグにonerrorつければいいんじゃね?」という指摘です。もしクロスブラウザ対応可能ならjQueryでも採用してくれないかなー、というのが軟弱な僕の感想です。
僕は解決をあきらめて一定時間結果が帰ってこない(=アクセスに時間がかかっているか、404などで実行が止まっている)状態ならエラー扱いにしました。ナイスな解決策をご存知の方は教えてください。と投げっ放しで終わります。