別のドメインからのリモートページのURLがあり、現在のページのDOMをダウンロード、解析、および更新する必要があります。新しいActiveXObject( "Msxml2.XMLHTTP")を使用してこれを行う例を見つけましたが、これはIEに限定されており、新しいjava.net.URLを使用していると思いますが、Javaは使用したくありません。代替案はありますか?
6 に答える
同じドメイン ポリシーがあなたを獲得しようとしています。
1) サーバー経由のプロキシ。ブラウザ - >あなたのサーバー - >彼らのサーバー - >あなたのサーバー - >ブラウザ。
2) フラッシュまたはシルバーライトを使用してください。サードパーティはアクセスを許可する必要があります。JavaScript とフラッシュの間のブリッジは、大量のデータには適しておらず、バグもあります。Silverlight はフラッシュのようにどこにでもあるわけではありません...
3) タグを使用します。これは本当に安全ではありません... サードパーティのコンテンツが有効な JavaScript である場合にのみ機能します。
AJAX経由でPHPスクリプトをロードするのはfile_get_contents()
どうですか? これは、別のドメインでも機能するはずです。私が正しいと理解すれば。
ページのコンテンツを取得するサーバー側のスクリプトを作成するのが最善の方法です。XMLHttpRequest オブジェクトを使用して、そのスクリプトへの AJAX 呼び出しを行うことができます。これは、すべての html (?) を処理するだけです。
それでも、私はそれに反対することをお勧めします。あなたが他のサイトをどの程度信頼しているか正確にはわかりませんが、同じオリジン ポリシーが存在するのには理由があります。あなたがやろうとしていることは正確には何ですか?通常、回避策があります。
同じオリジンポリシーの制約に従ってこれを行うことができるとは思いません。2 つは Iframe を使用して 2 つのドメイン間で通信し、JS コードも使用できますが、両方のドメインに通信コードが含まれている必要があります。子フレームは祖父母フレーム (ウィンドウ) に接続できますが、ここには接続できません。
他のURLをまとめて参照しているため。
唯一の方法は、サーバー側のコードを使用して他のドメインのコンテンツにアクセスすることです。
PHPを使用するだけです:
<?php
$url = "http://www.domaintoretrieve.com";
ob_start();
include_once( $url );
$html = ob_get_contents();
ob_end_clean();
?>
$html には、必要に応じて操作するページ全体が含まれています。
XMLHTTPRequestオブジェクトは、最近のほとんどのブラウザーに共通しており、AJAX Web アプリケーションを強化するものです。