まずは、クロスドメインでもなんでも無く、JavaScript として自分のコードでその動作の基本を作成するとこうなります。
<script type="text/javascript"> var myfunc = new Function("obj", "window.mydata = obj"); myfunc({ "jsonp1": "ようするに", "jsonp2": "こういうこと" }) alert(mydata.jsonp1 + "|" + mydata.jsonp2); </script>
次に、JSONP と呼ばれている部分を外部にしてクロスドメインするとなるとこういう事になります
<script type="text/javascript"> var myfunc = new Function("obj", "window.mydata = obj"); </script> <script src="http://toolbox.winofsql.jp/jsonp.php" type="text/javascript"></script> <script type="text/javascript"> alert(mydata.jsonp1 + "|" + mydata.jsonp2); </script>
その際、jsonp.php の中はこうなっています。
<?php header( "Content-Type: text/javascript; Charset=utf-8" ); ?> myfunc({ "jsonp1": "ようするに", "jsonp2": "こういうこと" })
さらにこれを実用的にするには、もっといろいろテクニックがいるわけですが、jsonp.php のようなコードは、そのサイトに置くだけで誰からもアクセスする事ができるようになります。 が。 そういうスクリプトはWEBサーバが管理できない場合に使えばいいと思うので、実際は PHP 内部にでも 「Access-Control-Allow-Origin: *」 をヘッダで返すようにすればいいと思うのですが。 関連する Microsoft ドキュメント Function オブジェクト 関連する記事 jQuery で JSONP。なるほど、良くできてる。