CORSの問題ArcGIS 10.1 IIS(Cross Origin Resource Sharing)


11

IIS用のWebアダプターと共にArcGIS 10.1をインストールしています。このページのとおり、Cross Origin Resource Sharing(CORS)を有効にするために、IIS7のルートに構成ファイルを追加しました。このページのとおり、CORS対応ArcGISサーバーをデフォルトのCORSサーバーのリストにプッシュしました。

esri.config.defaults.io.corsEnabledServers.push("vmagstenone")). 

ただし、vmagstenでホストされているJavaScriptアプリケーションがGISサーバー(vmagstenone)にリクエストを行うと、エラーが発生します

"Origin http://vmagsten is not allowed by Access-Control-Allow-Origin.". 

編集:フィーチャレイヤーの読み込みに失敗します。また、ダイナミックレイヤーをロードしようとしましたが、これも同じエラー_557で失敗します(画像を参照)

編集:上記の手順は、サーバーがクロスオリジンをサポートしていることを意味するため、このエラーは表示されません。このサーバーはcorsをサポートする必要があるため、この場合、このエラーを無視できるというesriによるこのステートメントは適用されません。これは、ESRIサーバーへの最初のエラーを無視できることを意味します。

ここに画像の説明を入力してください

編集:このレイヤーのクエリからのサンプル応答は、応答にAccess-Control-Allow-Originがあることを示しています

ここに画像の説明を入力してください


3
CORSを定義すると、GPSに使用される継続的に動作する参照ステーションではなく、クロスオリジンリソース共有について説明していることが明確になります。
カーククイケンドール

2
IISがCORSに必要なヘッダーを返していることを確認しましたか?
Devdatta Tengshe

@DevdattaTengshe上記の投稿を編集した
デビッドウィルトン

回答:


4

エラーが発生したと言いますが、実際にサービスをロードできませんか?

Esriフォーラムでこの投稿を見つけたので、質問します。

このエラーは無視しても問題ありません。APIが// rest / infoにリクエストを送信しない場合があります。ブラウザはCORSをサポートしていませんサーバーはesri.config.defaults.io.corsEnabledServers esri.config.defaults.ioに既にリストされています.corsDetection is false次の場合、JSONPの代わりにJSONが使用されます。取得されるリソースがアプリケーションと同じドメインにある取得されるリソースがCORSをサポートするサーバーにある

他のブラウザコンソールでも発生すると想定していますか?

そうでない場合は、どこかでFiddlerログまたは.HARファイルをオンラインに投げて(またはメールで送って)、それに応じてこの回答を不適切に編集できますか。


ごめんなさい、私はそれを見たと言ったはずです。サービスのロードは失敗します。Firefoxからエラーを投稿します。IEでは失敗しません
デビッドウィルトン

ESRIが予想しているように、最初の2つのエラーは無視すべきだと思います。ただし、フレームワークからのエラー_557が問題のようです。バージョン3.3と3.4で同じエラーが発生する
デビッドウィルトン

1
また、フィーチャレイヤーではなくダイナミックレイヤーを使用してみましたが、同じ問題があります。サイトがデータと同じサーバーでホストされている場合、エラーはありません。chrome.exe --disable-web-security(corsポリシーを実施しない)を使用すると、リクエストは問題ありません。これが、私がそれをcoorsと要求の問題だと信じるように導くものです。
デビッドウィルトン

2

応答が含まれていながらAccess-Control-Allow-Origin: *ヘッダを、それも含まX-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockヘッダー。これらは非標準の Xプレフィックスヘッダーであるため、ブラウザがallowヘッダーを介してそれらを受け入れているかどうかは100%わかりません。

Fiddlerなどのツールを使用して、ブラウザーリクエストのヘッダーを追加および削除できます。これは、何が起こっているのかを追跡するのに役立ちます。


2

これがIIS 8.0で機能したものです。これは、IISの他のバージョンでは異なる場合があります。

どちらの削除customHeadersWebサイトのルートディレクトリの中web.configのファイルまたは削除web.configファイルを完全に。

次にApplicationHost.configarcgisアプリケーションのIIS構成マネージャーでに切り替え、Access-Control-Allow-Origin名前と*値をに追加しますcustomHeaders

IIS 8.0構成エディター

CustomHeaders


1

クロスオリジンのリソース共有に慣れていません。
クロスドメインポリシーを使用します。
クロスドメインポリシー
それも設定されていますか?


1
はい、ArcGISサーバーのインストールで構成されたcrossdomain.xml clientaccesspolicy.xmlファイルが両方あります。ただし、これらのファイルはFlexおよびsilverlightアプリケーションに関連していると理解しています(リンク)。質問を編集して、JSについてのみ話していることを明確にするために、resources.arcgis.com
デイビッドウィルトン

1

どのような最終的には私のために働いたことに次を追加してROOTのサイトと、NOT ウェブアダプタ用のアプリケーション。それは理にかなっていますか?私ではありません。しかし、それは私のために働いた。

編集:これはWeb.configと呼ばれるDotNetプロキシファイルに移動する必要があります。

<configuration>
  <...rest of file...>
    <system.webServer>
      <httpProtocol>
       <customHeaders>
         <add name="Access-Control-Allow-Origin" value="*" />
       </customHeaders>
      </httpProtocol>
    </system.webServer>
  </...rest of file...>
</configuration>

ここに画像の説明を入力してください


これは私のために働いた答えでした...私はあなたの答えを編集して、何を調整する必要があるかを明確にしています。
randomblink
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.