태그 보관물: javascript

javascript

CORS 발행 ArcGIS 10.1 IIS (Cross Origin Resource Sharing) 기능 레이어가로드되지 않습니다. 또한 동적 레이어를로드하려고 시도했지만

IIS 용 웹 어댑터와 함께 ArcGIS 10.1을 설치했습니다. 페이지에 따라 CORS (Cross Origin Resource Sharing)를 활성화하기 위해 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이 있음을 보여주는이 계층의 쿼리 응답 샘플이 있습니다.

여기에 이미지 설명을 입력하십시오!



답변

오류가 발생했다고 언급했지만 실제로 서비스가로드되지 않습니까?

Esri 포럼 에서이 게시물 을 발견했을 때 다음과 같이 말합니다.

이 오류는 무시해도됩니다. API가 // rest / info에 요청을 보내지 않고 다음과 같은 경우가 있습니다. 브라우저가 CORS를 지원하지 않습니다. 서버가 이미 esri.config.defaults.io.corsEnabledServers에 나열되어 있습니다. esri.config.defaults.io .corsDetection이 false 인 경우 다음과 같은 경우 JSONP 대신 JSON이 사용됩니다. 페치되는 자원이 애플리케이션과 동일한 도메인에 있습니다. 페치되는 자원이 CORS를 지원하는 서버에 있습니다.

다른 브라우저 콘솔에서도 발생한다고 가정합니까?

그렇지 않은 경우 Fiddler 로그 또는 .HAR 파일을 온라인 어딘가에 보내거나 전자 메일로 보내어 적절하게이 답변을 편집 할 수 있습니까?


답변

응답이 포함 않지만 Access-Control-Allow-Origin: *헤더를 또한 포함 X-Frame-Options: SAMEORIGIN하고 X-XSS-Protection: 1; mode=block헤더. 이들은 X-prefix 헤더이며 비표준 이므로 브라우저가 허용 헤더보다 헤더를 준수 하는지 확실하지 않습니다.

Fiddler 와 같은 도구를 사용하여 브라우저 요청에서 헤더를 추가하고 제거 할 수 있습니다 . 이것은 당신이 일어나는 것을 추적하는 데 도움이 될 수 있습니다.


답변

IIS 8.0에서 나에게 도움이 된 것은 다음과 같습니다. 다른 버전의 IIS에서는 다를 수 있습니다.

중 하나를 제거 customHeaders웹 사이트의 루트 디렉토리의에서 web.config파일 또는 삭제 web.config완전히 파일을.

그런 다음 응용 프로그램 ApplicationHost.config의 IIS 구성 관리자에서로 전환 arcgis하고에 Access-Control-Allow-Origin이름과 *값을 추가 하십시오 customHeaders.

IIS 8.0 구성 편집기

CustomHeaders


답변

교차 출처 리소스 공유에 익숙하지 않습니다.
도메인 간 정책을 사용합니다.
도메인 간 정책
그것도 구성되어 있습니까?


답변

마지막으로 나를 위해 일한 것은 웹 어댑터의 응용 프로그램이 아닌 ROOT 사이트에 다음을 추가하는 것입니다 . 말이 되나요? 나 한테는 아니야 그러나 그것은 나를 위해 일했습니다.

편집 : 이것은 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>

여기에 이미지 설명을 입력하십시오


답변