22

XMLHttpRequest を他のドメインと組み合わせて使用​​する方法はありますか?

サーバーを使用せずに Google からいくつかの xml を解析したいので、実行が最小限に抑えられます。

var req = getXmlHttpRequestObject();
...
req.open('GET', 'http://www.google.de/ig/api?weather=Braunschweig', true);
        req.setRequestHeader("Content-Type","text/xml");
        req.onreadystatechange = setMessage;
        req.send(null);

サーバー側でそれを行うことは、少なくともオプションではありません。それなら、私が尋ねる必要はありません

4

7 に答える 7

11

いいえ、今は違います。将来に向けて標準化グループによって計画/設計が進行中であると読んだので、これを安全に行うことができます。

そうでなければ、クロスサイトスクリプティングの脆弱性が横行する可能性があります。

他のサイト API がサポートしている場合、JSONPは可能なソリューションです。

于 2008-11-27T21:52:14.927 に答える
8

HTML5 は XmlHttpRequest レベル 2 でクロス オリジン リクエストをサポートするようになりました。

http://www.html5rocks.com/en/tutorials/cors/

于 2013-04-10T07:44:22.403 に答える
2

これはセキュリティ上の問題です。ほとんどの (すべての?) ブラウザでは、これを行うことはできません。非表示の IFrame を使用してフェッチを行うことができますが、サーバーを使用するだけで十分に複雑です (または、ブラウザーで実行する必要がない場合は、別の言語に切り替えます)。

于 2008-11-27T21:54:01.833 に答える
2

クライアント側 (ブラウザ) のセキュリティ上の問題により、XMLHttpRequest または jQuery (XMLHttpRequest のラッパー) を介して example1.com から example2.com へのクロス ドメイン リクエストを行うことはできません。これは、CORS (クロス オリジン リソース共有) を介して HTML5 をサポートする最新のブラウザーで効果的に実装できます。これは、すべてのクライアント ブラウザーで利用できるわけではありません。したがって、解決策は、example2.com の example1.com にスクリプト タグを挿入することであり、この解決策は知られています。 JSON-P (パディング付きの JSON) として、データがサーバー (example2.com) によって提供される任意の形式である可能性があるため、名前が誤解を招く可能性があります。その実装コードは、このリンクhttp://newtechinfo.net/jsonpに記載されています。 -for-cross-domain-ajax/

于 2015-11-13T12:29:49.973 に答える
1

XSS 攻撃を制限するためにブラウザが最近持っている SOP (Same Origin Policy) により、これは不可能です。
サーバー側のスクリプト (PHP など) を使用する必要があります。

于 2008-11-27T21:54:47.760 に答える
0

HTML5で別ドメインへのXHRを作成することが可能です。また、別のWebサイトへHTTPで通信する際に、XHRで別プロトコルのリクエストを行うこともできます。

于 2013-09-16T06:28:19.230 に答える
-1

サーバー側で何かを試みることができます。したがって、アプリケーションでは、リモート サイトにリクエストを送信して結果を取得し、それをクライアントに返します。AJAX 呼び出しは、独自のサーバーのみを呼び出して機能します。

于 2008-11-27T21:55:02.720 に答える