Chrome のクロスサイトスクリプティング
つい最近知ったのだが、Chromeブラウザは、クロスサイトスクリプティングをブロックする仕様になっているため、いわいるAJAX(JavaScript を使った非同期通信)で、コンテンツをロードしたサーバー以外のサイトに、非同期通信を行おうとすると、JavaScript でエラーになってしまう。
サーバー側でこのエラーが出ないように設定することができるし、もちろん Chrome の設定を変えることもできる。
最も簡単な回避策は、コンテンツをロードしたサーバーに、非同期通信のサーバーにアクセスしてそのままデータを流すラッパーみたいなものを準備することみたいだ。
私は、PHPとかJavaScript の学習用に、無料のサーバーを借りているのだが、そのサーバーに置いたページを開くと、必ず、ブラウザの下の方に、広告が表示される。
ブラウザに表示するコンテンツなら、全く問題にならないのだが、非同期通信を行うデータ(もちろんXMLデータ)の後ろにも広告が付いてしまう。
この広告が付くと、非常に都合が悪い。
世の中には、XML形式でデータを公開しているサーバが幾つかある。
こういったサーバのデータを利用しようとすると、Chrome でクロスサイトスクリプティングのエラーになってアクセスできない。じゃ、自分が借りているサーバからラッパを使って持ってくると、広告が付いてしまい、XMLデータとして読み込めないようだ。
ということで、ネットで探すと、XMLを加工する JavaScript のソースコードがいっぱいあるのだが、泣く泣くテキストで処理するコードを自作することになった。
これはこれで、おもしろかったのだが。