別のドメイン-site.domain1.com
からコンテンツを起動する必要があるサイトcontent.domain2.com
がありますが、これを直接実行するとクロスドメインJSの問題が発生します。
基本的に、site.domain1.com
のコンテンツはdomain2
のコンテンツであるとdomain1.com
を考える必要があります。 IIS7でのURL書き換えが答えかもしれないと読んだことがありますが、これは可能ですか?
あなたが持っている問題は CORS で解決されます:
Cross-Origin Resource Sharing標準は、サーバーがWebブラウザーを使用してその情報を読み取ることを許可されているオリジンのセットを記述できるようにする新しいHTTPヘッダーを追加することにより機能します。さらに、ユーザーデータに副作用を引き起こす可能性のあるHTTPリクエストメソッド(特に、GET以外のHTTPメソッド、または特定のMIMEタイプでのPOSTの使用)については、ブラウザが「プリフライト」することを規定しています。 HTTP OPTIONSリクエストメソッドを使用してサーバーからサポートされているメソッドを要求し、サーバーから「承認」されると、実際のリクエストを実際のHTTPリクエストメソッドで送信します。サーバーは、「資格情報」(CookieおよびHTTP認証データを含む)をリクエストとともに送信する必要があるかどうかをクライアントに通知することもできます。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
サーバーからのヘッダーを、他のOriginドメインを信頼することを要求したブラウザーに伝える応答に追加する必要があります。そのリンクは、プロセスと必要なヘッダーを確認します。次のようなヘッダーを追加します。
Access-Control-Allow-Origin "*";
Access-Control-Allow-Methods "GET, POST, PUT, OPTIONS, DELETE";
Access-Control-Allow-Headers "Authorization,Content-Type,Accept";
Access-Control-Allow-Credentials "true";
最初のヘッダーは、サイトのJSコードからのクロスサーバーリクエストを許可するようブラウザに指示します。このアプローチにはセキュリティ上の懸念があるため、そもそもこれは直接許可されません。
URLだけを書き換えても問題は解決しません。書き換えは、他のサイトのURLではなく、ローカルURLのみを書き換えることができます。
「逆プロキシ」の概念を探しているかもしれません。つまり、Webサーバーが別のサイトからコンテンツを取得し、独自のドメインで動的に再公開するようにします。次に、JavaScriptはクロスサイトの問題なしにこのデータにアクセスできます。
記事はこちら IIS、URL Rewrite、およびARRを使用したリバースプロキシのセットアップについて。
クロスドメインAJAX を調べることもできます。 JSONP
またはAccess-Control-Allow-Origin
が適切なオプションのようです。