さじろーどっとねっと
<コールバック関数とJSONP>

appendChildとJSONPを使ったAjaxのポイントは、コールバック関数を使用して、取得したデータをコールバック関数に呼び戻すことにあります。

そのため、JSONPの作成方法をいろいろ変えるだけで、関数を呼び出すだけでなく、その他の処理を読み込んだスクリプトエレメントに足すこともできます。

例えば、JSONPのファイル中にこんなことを書いてみましょう
================================================================
ajax_callback({ "name":"test_name", "discription":"test_discription" });
document.write("callback Success");
================================================================

scriptタグで呼び込まれたJSONPはブラウザから見るとJavaScriptのコードでしかありませんので、その中にJavaScriptのプログラムを書くこともできます。

JSONPの規格からは外れる使い方ですが・・・


JSONPを提供しているサービスは多数あります。例えば、楽天WEBサービスです。こちらでは、rest、json、SOAP形式での情報取得が可能です。

restとは、XMLでデータを取得し、jsonはJSONP、SOAPはより拡張的な情報のやり取りができる手法です。

Yahoo!デベロッパーネットワークでは、XML形式のみ、Googleでも基本的には、XML形式が主流のようです。

なぜXMLなのかと考えると、JavaScriptはどんなサーバーでも使用できますが、XML形式であるとperlやPHPのようなサーバーアプリケーションが必要になります。

ある程度知識のある人を対象とするには、JSONPを公開せず、XMLだけでよいのかも知れません。


ブックマークに追加する