1

イントラネット Web サイトは、クライアント .NET アプリと通信する必要があります。クライアント アプリでHttpListener ( http://localhost:[port] ) を使用し、ページでこの URL を参照する iframe を使用しています。ページが HTTP の場合、魅力的に機能します。

問題: サイトが HTTPS の場合、「混合コンテンツ」Javascript エラーが新しいブラウザーに表示され、要求がクライアントに到達しません。

このエラーは、iframe の代わりに Ajax リクエストを使用した場合にも発生すると思います。

また、自己署名証明書をリスナーにバインドし、https://localhost:[port] (これは IE で機能します) をリッスンしようとしましたが、Firefox には独自の証明書ストアがあるため、そこに自動的にインストールするのは非常に困難です ( IE は、簡単にインストールできる Windows 証明書ストアを使用します)。

それで、サイト自体がFFとIEの両方で機能するHTTPSである場合、http://localhost:[port]にリクエストを送信する可能性を知っている人はいますか?

ありがとう!

4

1 に答える 1

1

iframe を次のように変更します。

<script>
    var request = new XMLHTTPRequest();
    request.open("GET", "http://localhost:[port]/?action=doStuff");
    request.send();
</script>

また、アプリに若干の変更を加える必要があります。

OPTIONS メソッドを実装する必要があり、クロスオリジン リソース ポリシーを返す必要があります。これは、実際よりもはるかに難しいように思えます。Access-Control-Allow-Originヘッダーを に設定して応答を返す必要があるだけ*です。

リクエストのレスポンスにGETもこのヘッダーが必要です。

localhost でアプリと通信しようとするすべてのドメインがわかっている場合は、*をホワイトリストまたは単一の値に変更できます。

于 2015-10-01T15:04:35.950 に答える