2016-08-17 5 views
0

イントロ

私は別の部署のWebサービスへの私たちの部署のイントラネットのWebページからのCORSのWeb要求を実行しようとしているが、私はよエラーが発生しました。私はこれについて全く新しいので、原因が異なるプロトコルによるものなのかどうかは判断できません。どのように私は安全でないエンドポイントへのセキュアなスタートポイントからのXMLHttpRequestを送信することができます

エラー

クローム52は以下を与えながら、IE11がAccess is Deniedを与えるCORS要求を実行しようとしている:

Mixed Content: The page at {MyPage} was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint {ServicePage}. This request has been blocked; the content must be served over HTTPS.` 

意向

、必要なすべてのイベントハンドラをアタッチJSファイルを作成します。 class='contactLookUp'属性を含むinput要素。このファイルはイントラネット上にある私たちの部署のページでのみ参照されます。そのほとんどはhttpsプロトコルを使用しています。入力変更時にはXMLHttpRequestが別のエンドポイントに送信されます.1つは社内イントラネット内にあり、部門コントロールの外にあり、httpプロトコルを使用します。 JSON形式のビジネスの連絡先が返されます。この時点で、ユーザーが簡単に必要な連絡先を選択できるように、ページにHTMLを挿入します。

ページのURL

以下は、イントラネット内のページの場所です。 [name]は会社名を指し、[Location1][Location2]は異なるディレクトリです。

スタートポイント:

https://[name]01test.[name].abc/[Location1]/HTMLPage1.html

エンドポイント:

http://[name]intranet02.[name].abc/[Location2]/TelephoneDirectory/TelephoneDirectoryService.svc/GetPeople?term=[SearchTerm]

いくつかの原因が考え

私はCORS、jQueryの、およびWeb開発にはかなり新しいです私がしたいことが可能かどうかは分かりませんが、次の原因が考えられます:

  • 混在したコンテンツ(クロームが与えるエラーが、私はこれが原因であると仮定します)
  • サーバーで有効になっていませんCORS(サーバが当科のコントロールの外にあるように、これが有効になっている場合、私はITに依頼する必要はありませんまたは私は確信している場合を除き、これを有効にするためには、原因は私がhttpsにエンドポイントを変更しようとしてきました
    • をしようとしてきた何混合コンテンツ)

    ではありませんが、これは返します404 Page not Foundエラー

スクリプト

var xhr = new XMLHttpRequest(); 
if ("withCredentials" in xhr) { 

    // Check if the XMLHttpRequest object has a "withCredentials" property. 
    // "withCredentials" only exists on XMLHTTPRequest2 objects. 
    xhr.open("GET", url, true); // <= Error here 
} 

答えて

0

CORSは、あなたのWebページがアクセスしようとしているエンドポイントによってサポートされる必要があります。そうでない場合は、ブラウザにプリフライト前のチェックに返信することはできません。CORSは、クロスオリジン要求のみを許可しますが、セキュアな接続を回避する方法としては意図されていません。

httpsがセキュアな接続を意図しているため、ブラウザーが安全でないリソースに接続しようとしているため、リソースへのアクセスが拒否されます。

ターゲットエンドポイントをhttpsに変更すると、エンドポイントがデフォルトのhttpsポート443(またはまったく)をリッスンしていないため、404が表示されます。

ウェブサービスがhttpsの別のポートでリッスンしているかどうかを確認できますが、おそらくロングショットです。

もう1つのオプションは、プロキシとして機能するWebサービスを構築することです。 XMLHttpRequestを作成しているWebアプリケーションは、その要求をプロキシに送信します。プロキシは、電話ディレクトリサービスに対して安全でないHTTP要求を行い、要求したクライアント(ブラウザ)にその結果を返します。

本質的にブリッジを構築する必要があります。

関連する問題