0

重複の可能性:
同一生成元ポリシーを回避する方法

現在、私はから電話をかけようとしてsite.com/ajax/countPMjack.site.comますが、リクエストのステータスはキャンセルされています。

4

3 に答える 3

1

残念ながら、ブラウザ ポリシーにより、site.com から jack.site.com への呼び出しを行ったにもかかわらず、これは「同じドメイン ポリシー」の灰色の影に分類されます。ブラウザは基本的に両方のドメインを異なるドメインとして扱い、その制限により、リクエスト。実際、これが単なるブラウザの問題であるかどうかはわかりませんが、より高いレベルにある可能性もあります。しかし、肝心なのは、一部のホスティングの概念は、各サブドメインが互いに独立しているサブドメインであるため、javascript がサブドメインを含むドメイン間で通信できるようにすることはセキュリティ上のリスクです。

サイトになりすまして無防備なサイトに何かを挿入するのは本当に簡単なので、セキュリティ上のリスクがあります。

いずれにせよ、より簡単な回避策の 1 つは、何らかの形式のサーバー側スクリプトを使用することです。私の場合、PHP では、cURL または Soap を使用してリモート ドメインのコンテンツを取得します。この場合、JSON または XML オブジェクトを推測し、そこからスクリプトにプッシュします。

于 2012-07-27T16:08:09.927 に答える
1

( AJAX 呼び出し に関するjQuery の追加メモセクションから) ブラウザーのセキュリティ制限により、ほとんどの "Ajax" 要求は同じオリジン ポリシーの対象となります。要求は、別のドメイン、サブドメイン、またはプロトコルからデータを正常に取得できません。

そうは言っても、クロスドメイン AJAX ポリシーを回避するために利用できる 2 つのオプションがあります。

  • JSON データを扱っている場合は、JSONPを試すことを検討してください。これは、AJAX のような呼び出しでクロスドメイン データを渡すために特別に作成されたものです。
  • AJAX スクリプトのサーバー側に代わって呼び出しを行うことができる、AJAX が存在するドメイン (jack.site.com) で仲介またはパススルーとして機能するサーバー側スクリプトを作成します。

さらに明確にする必要がある場合はお知らせください。

于 2012-07-27T16:15:08.563 に答える
0

これはうまくいくかもしれません(jack.site.comに追加してください):

document.domain = "site.com";

これについて正確にはわかりませんが、いくつかの場合に機能します。

于 2012-07-27T16:15:06.413 に答える