2

API を使用して、外部 Web サイトからデータのリクエストを開始しようとしています。

リクエストをコピーしてウェブブラウザに貼り付けると、正常に動作します。例 (http://example.com/json/user/search/all) のように、ブラウザ ウィンドウで結果を確認できます。

ただし、Web サイトからこのクエリを起動しようとすると、問題が発生します。次のような javascript を使用しています: var req = new XMLHttpRequest(); req.open('GET', 上記URL, true) req.send()

次のようなエラーが表示されます: Origin (MyDOMAIN) is not allowed by Access Control Allow Origin.

繰り返しますが、私は XMLHttpRequests にかなり慣れていませんが、これはかなり簡単に解決できると思います。誰でも知っていますか?(Googleで検索してみましたが、良い答えが見つかりませんでした)よろしくお願いします。

4

3 に答える 3

2

問題は同一生成元ポリシーです。これは、元のページと同じドメイン以外ではXMLHTTPRequestsを使用できないという規則です。これはセキュリティ上の理由によるものです。

これを回避する最も簡単な方法は、リクエストをプロキシするサーバー側スクリプトを作成することです。

于 2011-02-05T17:27:50.013 に答える
2

クロスサイト XMLHttpRequestsを実行することは許可されておらず、プロキシを使用して実行する必要があります。

Yahoo のこの記事では、詳細に説明し、解決方法のアイデアを提供しています。ただし、この制限はセキュリティ上の理由から存在するため、基本的には行うべきではありません。

fopen()たとえば、PHP を使用し、XMLHttpRequest オブジェクトを使用して単純にそのページを呼び出した方がよいでしょう。

于 2011-02-05T17:31:48.733 に答える
1

これは、クロスサイドスクリプトに対するブラウザの保護です。別のドメインからのページにアクセスすることは許可されていません。

編集:これもチェックしてください:クロスサイトXMLHttpRequest

于 2011-02-05T17:27:43.167 に答える