JavaScriptのクロスドメイン対策

2007/05/26 | JavaScript/Ajax

JavaScriptで異なるドメインに対してリクエストを送ることはできないと書いたけど、コメントをもらって回避策があることを知った。JavaScriptのdojoというフレームワークを使って回避できるということだったが、なにぶんJavaScriptにうといので、もろもろ検索して探ってみた。JavaScriptのフレームワークといえばprototype.jsがメジャーと思いそちらでも調べてみたら、やっぱりできそうな感じ。ん〜、やっぱりフレームワークを少しかじらなくてはいけないのか、と思ってたらいい検索キーワードに出会えた。

「クロスドメイン」

一般的には「JavaScriptではクロスドメインな制御ができない」とでもいわれているようだ。そこでこれをキーワードにいろいろと検索してみた。それで見つけたのがこのページ

理屈としてはこんな感じ。
○JavaScriptの外部スクリプトならどこからでも呼び出せる。
 <script src=”http://example.com/hoge.js”></script>
○これをボタンクリック時などに実行できればいい。
○普通はHTMLが読み込まれた時点でのみ、ファイルの読み込みされるのでタダ記述するだけではだめ。
○イベントドリブンで処理する。以下のスクリプトで動的に読み込ませることができる。
 var s=document.createElement(‘script’);
 s.src=”http://example.com/hoge.js”;
 document.body.appendChild(s);

これでいい。おそらく戻り値が必要な場合はJASON形式で返してやれば何とかなるのだろう(今回はリクエストさえ送ることができればいいので省略)。これでずいぶんすっきりした。

しかしJavaScriptのフレームワーク、奥が深い。まぁGmailでもGoogle Mapsでもそうだけど、サーバサイドプログラミングばっかりやっていた人間にとっては驚くほど魅力的だ。JavaScript・・・できなきゃだめだろうな。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net