JavaScriptで、サブドメインが異なるとか、ドメインが異なるサイトの情報を取得しようとすると、できない。同一のスクリプトをローカルから実行することはできるが、ウェブサーバーに載せて呼び出すと実行できない。もちろん、セキュリティー対策(クロスサイトスクリプティング対策)が動作しているためであるから、その設定を変更すれば問題なく動作させることができるが、そんな操作をユーザーがやってくれるとは思えない。
このような場合、内部に別のシステムを作っておき、そのプログラムが外部サイトの情報を取得し、JavaScriptへ返答を返すように作る必要がある。だが、面倒だ。面倒だったから少し前に書いたスクリプトを破棄して前のバージョンに戻した経験があったのだけれど、全く別の調べ物をしている時にこの問題を簡単に解決してくれるものを見つけた。
スポンサードリンク
プロキシを設置する、ということだった。
考え方としては全く同じだけれど、まず「プロキシ」という言葉を聞かされたときに、あぁそっか、その手があったな、いわれてみればそうだ、と思った点、汎用的に利用できる用になっている点、ライセンスがGPL and MITでオープンソースな点、いくつかのサイトで取り上げられている点でなかなかよさそうだ。しかし、私の使いたい用途は単純で、指定されたURLにアクセスできるかどうかを判定したいのだ。要は404か200かだけわかればいいのだ。これらのツールで404の場合、ステータスフィールドに返答が返されそうだが、今のところ試していない。とりあえずメモ。
◆参考文献
- JavaScriptでどうしても外部のドメインのコンテンツを読みたい際に使えるプロキシスクリプト「Simple PHP Proxy」:phpspot開発日誌 :
JavaScriptでどうしても外部のドメインのコンテンツを読みたい際に使えるプロキシスクリプト「Simple PHP Proxy」:phpspot開発日誌PHP/HTML5/CSS3/JavaScript/CSS等の最新技術情報をお届け - Simple PHP Proxy: Get external HTML, JSON and more! :
Simple PHP Proxy: Get external HTML, JSON and more! - Ben Alman » Simple PHP Proxy: JavaScript finally “gets” cross-domain! :
Ben Alman » Simple PHP Proxy: JavaScript finally "gets" cross-domain! - クロスドメインの制約を外す事ができるproxy「Simple PHP Proxy」 | Web活メモ帳 :
クロスドメインの制約を外す事ができるproxy「Simple PHP Proxy」クロスドメインの制約を外す事ができるproxy「Simple PHP Proxy」
コメント