別のサイトからリクエストできるフィードバック ページの作成を依頼されました。
ページの表示にプログレッシブ エンハンスメントを使用しています。
jquery ダイアログを使用できる場合の ajax リクエストは次のとおりです。
jQuery.support.cors = true;
$.ajax({
type: 'get',
crossDomain: true,
url: this.href
}).done(function (data) {
$dialogFeedback.html(data);
}).error(function (jqXHR, textStatus, errorThrown) {
$dialogFeedback.html(jqXHR.responseText || textStatus);
});
テスト中に、応答 Access-Control-Allow-Origin HttpHeader がクライアント ドメインに設定されていない場合でも、Internet Explorer がクロス ドメイン呼び出しを許可しているように見えることに気付きました。Http origin ヘッダーが常に null であることに気付きました。
Chrome と Firefox はそれを尊重します。HTTP オリジン ヘッダーが null ではありません。
呼び出しを行っているクライアント サイトは、フィードバック サイトとは異なるポートにありますが、どちらも localhost です。別のポート番号がクロスドメインと見なされることを読みました。
現時点では、Referrer Http ヘッダーから発信者/クライアント ドメインを取得する必要があり、ドメインが不明な場合は 404 を返す必要があります。
本当に私は Access-Control-Allow-Origin HttpHeader に頼ることを望んでいました!
. . . 私の質問は、なぜこれが起こっているのですか?それは実際に期待/可能性がありますか?最善の解決策は何ですか?
ありがとう