CORS phát hành ArcGIS 10.1 IIS (Chia sẻ tài nguyên nguồn gốc chéo)


11

Tôi đã cài đặt ArcGIS 10.1 với bộ điều hợp web cho IIS. Tôi đã thêm một tập tin cấu hình vào thư mục gốc của IIS7 để cho phép Hội Chữ thập xứ Resource Sharing (CORS) theo này trang. Tôi đã đẩy CORS kích hoạt ArcGIS máy chủ vào danh sách CORS máy chủ mặc định theo này trang:

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

Tuy nhiên, khi ứng dụng JavaScript của tôi được lưu trữ trên vmagsten đưa ra yêu cầu đến máy chủ GIS (vmagstenone), tôi gặp lỗi

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

Chỉnh sửa: Và lớp tính năng không tải được. Tôi cũng đã thử tải một lớp động và điều này cũng không thành công với cùng một lỗi _557 (xem hình ảnh)

Chỉnh sửa: Tôi không nên thấy lỗi này vì các bước trên có nghĩa là máy chủ không hỗ trợ nguồn gốc chéo. Tuyên bố này của esri rằng lỗi này có thể được bỏ qua không áp dụng trong trường hợp này vì máy chủ này sẽ hỗ trợ cors. Điều đó có nghĩa là lỗi đầu tiên đối với máy chủ ESRI có thể bị bỏ qua.

nhập mô tả hình ảnh ở đây!

Chỉnh sửa: đây là một phản hồi mẫu từ một truy vấn trên lớp này cho thấy rằng phản hồi có Access-Control-Allow-Origin

nhập mô tả hình ảnh ở đây!


3
Bạn có thể muốn xác định CORS, để rõ ràng chúng ta đang nói về Chia sẻ tài nguyên nguồn gốc chéo và không phải là Trạm tham chiếu hoạt động liên tục , được sử dụng cho GPS.
Kirk Kuykendall

2
Bạn đã chắc chắn rằng IIS của bạn đang trả lại các Tiêu đề cần thiết cho CORS chưa?
Devdatta Tengshe

@DevdattaTengshe Tôi đã chỉnh sửa bài đăng ở trên
David Wilton

Câu trả lời:


4

Bạn đề cập đến việc bạn gặp lỗi, nhưng dịch vụ có thực sự không tải được không?

Tôi hỏi, khi tôi phát hiện bài đăng này trên các diễn đàn Esri có ghi:

Lỗi này có thể được bỏ qua một cách an toàn. Có những trường hợp API sẽ không gửi yêu cầu tới // rest / information và như sau: Trình duyệt không hỗ trợ CORS Máy chủ đã được liệt kê trong esri.config.defaults.io.corsEnablesServers esri.config.defaults.io .corsDetection là sai JSON được sử dụng thay cho JSONP trong các trường hợp sau: Tài nguyên được tìm nạp nằm trên cùng một miền với ứng dụng Tài nguyên được tìm nạp nằm trên máy chủ hỗ trợ CORS

Tôi giả sử nó cũng xảy ra trong các bảng điều khiển trình duyệt khác?

Nếu không, bạn có thể ném nhật ký Fiddler hoặc tệp .HAR trực tuyến ở đâu đó (hoặc gửi email cho tôi không) và chỉnh sửa câu trả lời này cho phù hợp.


Xin lỗi tôi nên đã đề cập tôi đã thấy điều đó. Dịch vụ không tải. Tôi sẽ đăng lỗi từ Firefox. Nó không thất bại trong IE
David Wilton

Tôi nghĩ rằng bạn có thể đúng rằng hai lỗi đầu tiên nên được bỏ qua vì ESRI nói rằng những lỗi này được dự kiến. Tuy nhiên, lỗi _557 đến từ khung dường như là vấn đề. Tôi gặp lỗi tương tự trong phiên bản 3.3 & 3.4
David Wilton

1
Tôi cũng đã thử sử dụng một lớp động thay vì một lớp tính năng và điều đó có cùng một vấn đề. Nếu trang web được lưu trữ trên cùng một máy chủ với dữ liệu thì không có lỗi. Sử dụng chrome.exe --disable-web-security (không thi hành chính sách cors), các yêu cầu đều ổn. Đây là những gì khiến tôi tin rằng nó là một vấn đề với coors và yêu cầu.
David Wilton

2

Trong khi phản hồi không chứa một Access-Control-Allow-Origin: *tiêu đề, nó cũng chứa X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockcác tiêu đề. Đây là các tiêu đề tiền tố X, không chuẩn , vì vậy tôi không chắc chắn 100% nếu trình duyệt của bạn tôn trọng chúng qua tiêu đề cho phép.

Bạn có thể sử dụng một công cụ như Fiddler để thêm và xóa các tiêu đề khỏi yêu cầu trình duyệt; điều này có thể giúp bạn theo dõi những gì đang xảy ra.


2

Đây là những gì làm việc cho tôi trong IIS 8.0. Điều này có thể khác nhau trên các phiên bản khác của IIS.

Xóa tệp customHeaderstrong thư mục gốc của trang web web.confighoặc xóa web.configtệp hoàn toàn.

Sau đó chuyển sang ApplicationHost.configTrình quản lý cấu hình IIS cho arcgisứng dụng và thêm Access-Control-Allow-Origintên và *giá trị vào customHeaders.

Trình chỉnh sửa cấu hình IIS 8.0

Tùy chỉnh


1

Tôi không quen thuộc với việc chia sẻ tài nguyên nguồn gốc chéo.
Tôi sử dụng chính sách tên miền chéo.
chính sách tên miền chéo
Bạn có cấu hình như vậy không?


1
Có, tôi có cả các tệp clientaccesspolicy.xml crossdomain.xml được cấu hình bởi cài đặt máy chủ ArcGIS. Tuy nhiên, theo hiểu biết của tôi thì các tệp này liên quan đến các ứng dụng Flex và silverlight (liên kết). Tôi sẽ sửa câu hỏi để làm cho nó rõ ràng rằng tôi đang nói về JS chỉ resources.arcgis.com/en/help/install-guides/arcgis-server/10.1/...
David Wilton

1

Điều cuối cùng làm việc cho tôi là thêm phần sau vào trang ROOTKHÔNG phải là ứng dụng cho bộ điều hợp web . Liệu nó có ý nghĩa? Không phải với tôi. Nhưng nó làm việc cho tôi.

EDIT: Điều này sẽ có trong tệp proxy DotNet có tên là Web.config.

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

nhập mô tả hình ảnh ở đây


Đây là câu trả lời phù hợp với tôi ... Tôi đang chỉnh sửa câu trả lời của bạn để làm rõ những gì cần điều chỉnh.
Randomblink
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.