JavaScriptでブラウザ上クロスドメイン通信のための手段
JavaScriptでブラウザ上で「クロスドメイン通信」をしたい。
いくつか方法がある。
クロスドメイン通信の方法
- JSONP : scriptタグのSRCの動的書き換えで,外部サーバを指定。
- iframeやwindowにHTML5のWeb Messaging APIでpostMessageで通信する
上記の2つがメジャー。
ほかにも
- iframeタグのsrcを動的に変更。
- xhr2で通信。
- document.domainの動的な変更。
などがある。
解説資料
javascriptでクロスドメイン対応する場合の覚書 | ミラボ
http://log.miraoto.com/2013/03/750/
- JSONPを利用した対応(<script>タグを利用) これが一番簡単な対応かもしれない。以下の例だとjavascriptでscriptタグに後からURLを追加している
なぜJSONPだとクロスドメイン制約を超えられるのか? - 射撃しつつ前転
http://d.hatena.ne.jp/tkng/20100918/1...
- クロスドメイン制約が重要なのは、悪意あるJavaScriptがあなたのブラウザ上で実行され、銀行などのサーバーにアクセスして機密情報を盗み出す事を防ぐためである。
- ここでポイントになるのが、JSONPはクロスドメイン制約を回避して通信するためにわざわざサーバー側で対応が必要になるという点である。後述するが、JSONPでまともに機密情報を扱うことは不可能に近い。つまり、JSONPのAPIをわざわざ用意するということは、そこで提供される情報は機密情報ではないはずである。
PostMessageを使ったクロスドメイン通信によるメッセージの送受信とは? | Web.fla
http://the-zombis.sakura.ne.jp/wp/?p=...
- Web Messagingの流れと解説 さて、ここからが本題ですが、メッセージを送信・受信するにはhtml5のjavascript apiを利用します。 windowオブジェクトに用意されている「postMessage」というメソッドで送信して、windowオブジェクトの「onmessage」イベントが発生して受信する流れ
ブラウザでのクロス・ドメイン通信のセキュリティ保護 − @IT
http://www.atmarkit.co.jp/fdotnet/arc...
- 別の例としては、iframe.src プロパティがあります。iframe の外部のコードでは、iframe の src URL プロパティを読み取ることはできませんが、iframe の src URL に書き込むことはできます。したがって、iframe の外部のコードは、iframe の URL を介して iframe にデータを送信できます。
JavaScriptのクロスドメイン問題対応方法 : アシアルブログ
http://blog.asial.co.jp/897
- JavaScriptにてクロスドメイン間の通信をする場合には、JSONPを利用して行う方法もございますが、今回はHTML5より利用できるようになった、postMessageにてクロスドメイン間のデータの通信方法についてご紹介
XMLHttpRequest Level2でクロスドメイン通信を行う(GET) - ネコとウサギとオブジェクト
https://sites.google.com/site/nekousa...
- クロスドメインでGETを行う為にレスポンスヘッダに Access-Control-Allow-Origin を指定
galife: クロスドメイン制約 を document.domain の 変更 で 回避
http://garafu.blogspot.jp/2013/09/doc...
- document.domain は、上位ドメインへの変更は可能ですが、他のドメインへ変更はできません。