4

JavaScript で XMLHTTPRequest を使用する場合、.js ファイルがホストされている Web サイトではなく、外部の Web サイトに送信したいと考えています。現在のサーバーのtest.phpに送信するには、次を使用します

request.open("POST", "test.php", true);

しかし、2番目の引数については、どうすれば別のWebサイトに送信できますか. 「example.com/test.php」は現在のサーバー上のファイルを探しますが、「http://example.com/test.php」は完全に失敗したようです。

4

5 に答える 5

7

セキュリティ上の理由からできません。JavaScriptの同じオリジン ポリシーを参照してください。

ブラウザのバグやまれなケースを利用するいくつかの回避策がありますが、それらを使用することはお勧めしません。

最善の方法は、Ajax リクエストを受信し、HTTP リクエストを他のサーバーに送信するサーバー側プロキシを用意することです。これは、入力をサニタイズし、送信されるリクエストのタイプと接続するサーバーをホワイトリストに登録することにより、慎重に実装する必要があります。

于 2009-05-04T16:59:39.077 に答える
6

これはSame Origin Policyの悪いケースのように思えます :)

于 2009-05-04T16:56:06.977 に答える
1

サーバーを制御できる場合は、HTTP 応答でこのヘッダーを使用できますが、すべてのブラウザーで機能するとは限りません。

Access-Control-Allow-Origin: *
于 2012-04-03T21:30:58.337 に答える
1

(ほとんどの場合) XmlHttpRequest を使用して外部 Web サイトからデータを取得することはできません。ただし、できることは、SCRIPT タグを動的に作成し、外部アドレスを参照することです。jQueryは、これを ajax 処理の一部として機能的にラップします。

于 2009-05-04T17:01:31.817 に答える
1

確かにできます。ただし、どのブラウザでもありません。

Internet Explorer 8.0 には、クロスドメイン要求を有効にするオブジェクトであるXDomainRequestがあります。最初に「*」またはリクエスター ドメイン名を含む Access-Control-Allow-Origin ヘッダーを送信することにより、サーバー上でこのオブジェクトを使用して行われたリクエストを適切に処理する必要があります。

とにかくハックなことをしているので、最初に IE8 で使用してみませんか?

于 2009-05-04T19:37:28.773 に答える