3

当サイトでは、SSLを使用しているページとSSLを使用していないページがあります。

例えば:

http://www.example.com/search/patients
https://www.example.com/patients

今、私はページ上で患者を検索しており、関数と経由でhttp://www.example.com/search/patientsサーバー要求を送信しています。データを取得できません。https://www.example.com/patientsjQuery $.ajaxdataType=json

質問:

  1. 同じサーバーでtoまたはtoにjsonpリクエストするときに使用する必要がありますか?httphttpshttpshttp

  2. 両方の URL に SSL を使用するとdataType=json

ありがとう

4

3 に答える 3

5

Same Origin Policyにより、スクリプトを実行する HTML ドキュメントのドメイン名、アプリケーション層プロトコル、および (ほとんどのブラウザで) ポート番号が同じである場合にのみ ajax リクエストが許可されます。

あなたの場合、アプリケーション層のプロトコルが異なるため、スクリプトが失敗します

考えられる解決策は次のとおりです。

  • JSONP、サーバーによって提供される必要があります

  • CORSはより「エレガント」でクリーンなソリューションですが、IE ではまだ完全にはサポートされていません (IE7 ではサポートされておらず、IE8 にはいくつかの制限があります)。

于 2012-04-25T08:22:15.223 に答える
3

両方の URL に SSL を使用すると、それが機能するはずです。また、@Waqas Raja が示唆したように、相対 URL を使用することをお勧めします。

例えば$.ajax({url: '/search/patients'})

于 2012-04-25T08:21:14.507 に答える
1

別のオリジンからコンテンツを取得するには、CORS、プロキシ、または JSONP のいずれかを使用する必要があります。スキームの変更 (http から https またはその逆) は、オリジンの変更です。

安全なサーバーから安全でないページにデータをプルすると、SSL を使用する利点の多くが失われます。

ページとデータ ソースの両方を SSL 経由で取得する場合は、プレーンな JSON を使用でき、これらのセキュリティ上の問題を引き起こすことはありません。

于 2012-04-25T08:22:24.357 に答える