私が質問を正しく理解していれば、あなたが経験したドメイン制限のために、Javascriptだけを使用してそれを行うことはおそらくできないでしょう。ただし、シェルスクリプトやスクリプト言語の使用についてある程度の知識がある場合は、問題はありません。必要なのは、古き良きカールを呼び出すことだけです。
PHPの例:
<?php
$url = "http://www.example.com/index.html";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
$fp = curl_exec($ch);
curl_close($ch);
?>
そして、それはほとんどそれです。$fp変数に実際のHTMLコードがあります。したがって、全体として、私が行うことは、PHPに小さなJavascript Ajax関数を記述して、カールを実行し、echoを介してJavascriptコールバックに$ fp変数を返し、それをドキュメントに挿入することです(innerHTMLまたはDOM)、そしてbam、あなたはすべてのものにアクセスできます。または、PHPで解析することもできます。いずれにせよ、カールを介してそれを行う場合は正常に動作するはずです。お役に立てば幸いです。
編集:少し考えた後、Safariがローカルホストのクロスドメイン制限を削除したことを覚えているようです。さらに調査した後、この私の理論をサポートするドキュメントを見つけることができなかったので、少し深く掘り下げて、Apacheを使用している場合は、Apacheを介してこの混乱全体を達成するためのより良い(ハッカーではありますが)方法を見つけました(あなたはおそらくそうです)。
Apacheのmod_proxyは、「/ foo」などのリクエストを受け取り、実際には「<a href="http://dev.domain.com/bar" rel="nofollow noreferrer"> http:」などのリモート宛先にリクエストをトンネリングします。 //dev.domain.com/bar」。その結果、Webブラウザはhttp:// localhost / fooを呼び出したと見なしますが、実際にはリモートサーバーからデータを送受信しています。セキュリティへの影響が解決されました!
例:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
http://dev.domain.com/remote/api.phpにあるファイルにアクセスしたいとします。次のすべてを:に入れます。
# start mod_rewrite
RewriteEngine On
ProxyRequests Off
<Proxy>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /apitest/ http://dev.domain.com/remote/api/
ProxyPassReverse /apitest/ http://dev.domain.com/remote/api/
RewriteRule ^/apitest/(.*)$ /remote/api/$1 [R]
ソース
さらに編集:
サーバー全体のセットアップを回避する方法として、Safari(Mac)でIFRAMEを使用してショットを作成しました。少なくとも、試したドメインでは機能しました。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html>
<head>
</head>
<body>
<iframe src="http://www.stackoverflow.com/"></iframe>
</body>
</html>