2

次の問題があります。自分のサイトのページ ( https://test.com ) から別のページ ( http://anotherdomain.comなど) にデータを送信する必要があります。ユーザーは、テキスト ボックスにデータを入力してボタンをクリックするだけです。このページのスクリプトは、クリック イベントを処理し、GET 要求を (jQuery ajax メソッドを使用して) http://anotherdomain.comに送信します。

var enteredValue = $('#MytextBox').val();

function jsonpCallbackFunc(data) 
{
}

$.ajax({
    url: 'http://anotherdomain.com/qwerty/ajaxpage.php',
    data: { valuefield: enteredValue },
    dataType: 'jsonp',
    jsonp: 'callback',
    jsonpCallback: 'jsonpCallbackFunc',
    success: function (json) {
          // some code
    }
})

FireFox を使用して次のエラーを受け取りました - 「混合アクティブ コンテンツの読み込みがブロックされましたhttp://anotherdomain.com/qwerty/ajaxpage.php ...」。IE9 と Chrome についても同じ状況です。

質問: この問題を解決するにはどうすればよいですか? このスクリプトを 1 つのサイトだけに許可することはできますか、それとも別のコード (jQuery+jsonp ではない) を使用することはできますか?

助けてくれてありがとう。

PS「http」サイトから、このコードは期待どおりに機能します。

更新: 別の「https」-url ( https://anotherdomain.com/qwerty/ajaxpage.php ) を使用して問題を解決しました。以前に使用しようとしましたが、信頼できない証明書がありました。今では正しく動作します。助けとアドバイスをありがとう。

4

2 に答える 2

2

これはCORSが原因で発生します。他のドメインにリクエストすると、 ajax呼び出しを条件にプリフライト リクエストが発生する場合があります。jQuery を使用しているため、リクエストにカスタム ヘッダーが設定されます。だから使う

アクセス制御要求ヘッダー

アクセス制御許可オリジン

アクセス制御許可メソッド

corsとその実装を参照してください。

于 2013-10-24T02:51:27.237 に答える