Випуск CORS ArcGIS 10.1 IIS (міжпоширений розподіл ресурсів)


11

У мене встановлений ArcGIS 10.1 з веб-адаптером для IIS. Я додав конфігураційний файл до кореня IIS7, щоб увімкнути перехресний розподіл ресурсів (CORS) відповідно до цієї сторінки. Я перемістив сервер ArcGIS з включеними колами до списку серверів серверів за замовчуванням на цій сторінці:

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

Однак коли мій додаток JavaScript, розміщений на vmagsten, робить запит на GIS-сервер (vmagstenone), я отримую помилку

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

Редагувати: І шар функції не завантажується. Я також спробував завантажити динамічний шар, і це теж не вдається з тією ж помилкою _557 (див. Зображення)

Редагувати: я не повинен бачити цю помилку, оскільки наведені вище кроки повинні означати, що сервер підтримує перехресне походження. Ця заява 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 є помилковим JSON використовується замість JSONP у наступних випадках: Обирається ресурс знаходиться в тому ж домені, що і додаток. Обирається ресурс знаходиться на сервері, що підтримує CORS

Я припускаю, що це відбувається і в інших консолях браузера?

Якщо ні, чи можете ви кинути журнал Fiddler або файл .HAR кудись в Інтернеті (або надішліть мені його електронною поштою) і неправильно відредагуйте цю відповідь.


Вибачте, я повинен був згадати, що я це бачив. Служба не завантажується. Я опублікую помилку від Firefox. Це не виходить з ладу в IE
David Wilton

Я думаю, ви, мабуть, праві, що перші дві помилки слід ігнорувати, оскільки ESRI кажуть, що таких очікується. Однак помилка _557, що виходить із рамки, здається, є проблемою. Я отримую таку ж помилку у версії 3.3 та 3.4
Девід Уілтон

1
Я також намагався використовувати динамічний шар, а не функціональний шар, і це те саме питання. Якщо сайт розміщений на тому ж сервері, що і дані, помилок немає. Використовуючи chrome.exe - відключити веб-безпеку (не застосовувати політику cors), запити є нормальними. Це те, що змушує мене вважати, що це питання з колегами та проханням.
Девід Уілтон

2

Хоча відповідь містить Access-Control-Allow-Origin: *заголовок, він також містить X-Frame-Options: SAMEORIGINі X-XSS-Protection: 1; mode=blockзаголовки. Це заголовки X-префіксів, які нестандартні , тому я не впевнений на 100%, чи буде ваш браузер шанувати їх над заголовком дозволу.

Ви можете використовувати такий інструмент, як Fiddler, для додавання та видалення заголовків із запитів браузера; це може допомогти вам відстежити, що відбувається.


2

Ось що працювало для мене в IIS 8.0. Це може відрізнятись від інших версій IIS.

Видаліть файл customHeadersу кореневому каталозі веб-сайту web.configабо видаліть web.configфайл повністю.

Потім перейдіть ApplicationHost.configу програму IIS Configuration Manager для arcgisпрограми та додайте Access-Control-Allow-Originім'я та *значення до customHeaders.

IIS 8.0 Редактор конфігурації

CustomHeaders


1

Я не знайомий із спільним розподілом ресурсів.
Я використовую політику крос-домену.
міждоменна політика
У вас це також налаштовано?


1
Так, у мене є файли crossdomain.xml clientaccesspolicy.xml, налаштовані сервером ArcGIS. Однак, наскільки я розумію, ці файли стосуються програм Flex та Silverlight (посилання). Я відредагую питання, щоб зрозуміти, що я говорю про JS only resources.arcgis.com/en/help/install-guides/arcgis-server/10.1/…
Девід Вілтон

1

Що нарешті для мене спрацювало, це додавання наступного на сайт ROOT, а НЕ додаток для веб-адаптера . Чи є сенс? Не мені. Але це працювало на мене.

РЕДАКТУВАННЯ: Це повинно входити в проксі-файл DotNet, який називається 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>

введіть тут опис зображення


ЦЕ була відповідь, яка працювала на мене ... Я редагую вашу відповідь, щоб уточнити, що потрібно коригувати.
randomblink
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.