21

HTTP ページから HTTPS サービスへのクロスドメイン Web サービス呼び出しを行おうとしています。

サーバーに適切な CORS ヘッダーを設定しました (HTTP-HTTP および HTTPS-HTTPS で動作します)。

リクエストを JSONp に変更すると機能します

Chrome と Firefox で見られるのは、HTTPS リクエストが送信されず、すぐに中止され、サーバーがリクエストを認識しないことです。

OPTIONSプリフライトリクエストが中止される (サーバーに到達しない)ことに注意してください。

これが実際に不可能であること (HTTP から HTTPS) を説明するソースが見つかりませ。HTTPS から HTTP への接続が安全ではないことは理解できますが、逆の場合は問題ないはずです。JSONpが機能するので、私にはばかげているように思えます(しかし、面倒です)。

ノート

私もにwithCredentials設定しtrue、いくつかのカスタムヘッダーとカスタムを送信していますContent-Type:application/json

IE <= 9のJSONpへのフォールバックで通常のXMLHTTPRequestを使用しています

4

2 に答える 2

11

わかりました、私はそれを理解しました。HTTPS ドメインに使用している証明書は、自己署名され、検証されていません。信頼できるサードパーティ機関のリストに追加すると、修正されました。

証明書は、IE を介して Windows 7 にインストールできます。これは私にとってはうまくいきました: http://productforums.google.com/forum/#!topic/chrome/bds-Ao9LigA%5B1-25%5D による投稿管理者としてzacharysyoung 2/11/09 IE(9) を実行していることを確認してください。 -正しくインストールされたと表示されますが。

  1. Internet Explorer (IE) を開き、自己署名証明書をホストしているサイトに移動します。
  2. IE は、「この Web サイトのセキュリティ証明書には問題があります」という警告ページを表示する必要があります。
  3. [この Web サイトを続行する (非推奨)] リンクをクリックします。
  4. ページが読み込まれたら、アドレス バーの右側を見てください。「証明書エラー」というラベルの付いた赤/ピンクのボタンが表示されます。そのボタンをクリックします。
  5. 「信頼されていない証明書」というタイトルのポップアップが表示されます。ポップアップの下部にある [証明書を表示] リンクをクリックします。
  6. 「証明書」というタイトルの別のポップアップが表示されます。[証明書のインストール...] ボタンをクリックします。
  7. 「証明書のインポート ウィザード」が開始されます。[次へ] ボタンをクリックします。
  8. ** XP の場合: [証明書を自動的に選択...] オプションを選択したままにして、[次へ] ボタンをクリックします。** Vista の場合: [すべての証明書を次のストアに配置する] オプションを選択し、[参照] ボタンをクリックします。b. [物理店舗を表示] チェックボックスをクリックします。c. [サードパーティ ルート証明機関] フォルダーを展開し、[ローカル コンピューター] を選択します。[OK] ボタンをクリックします。d. [次へ] ボタンをクリックします。
  9. これにより、[証明書のインポート ウィザードの完了] ダイアログが表示されます。[完了] ボタンをクリックします。
  10. 「セキュリティ警告」ポップアップが表示されます。警告は、証明書の発行元を実際に検証できないことを通知しています。証明書の発行元を知っておく必要があります。その場合は、[はい] ボタンをクリックして証明書をインストールします。
  11. 「インポートが成功しました」という最後のポップアップが表示されます。[OK] ボタンをクリックします。
  12. Chrome を再起動して開き、問題のサイトに移動します。セキュリティ警告ページが表示されることはありません。

それとは別に、Chrome でバグを発見した可能性があると思います。参照: https://code.google.com/p/chromium/issues/detail?id=141839

于 2012-08-10T12:32:33.233 に答える
1

easyXDMのようなものをセットアップする方が簡単かもしれません。すぐに使い始めることができ、下位互換性をすべて (IE6 まで) 提供します。それはあなたが探している自家製のソリューションではないかもしれませんが、急いでクロスドメイン (両側にアクセスできる場所) が必要な場合は、法案に適合します.

いつでも独自の iframe (postMessage) インターフェイスを作成できますが、車輪を再発明する必要はありません (別のサブドメインを使用している場合は、document.domain を設定することを忘れないでください)。

于 2012-07-27T15:11:56.510 に答える