2017-02-15 14 views
2

Я создаю веб-приложение GIS на базе ArcGis Server, но у меня проблема с браузером Firefox. Я разрабатываю в JS веб-приложение GIS, которое позволяет пользователю редактировать функциональный уровень (обратите внимание: вызов ArcGis без ESRI ArcGis API для JS).ArcGIS Server REST API - POST OPTIONS preflight request: 405 Метод не разрешен

запрос HTTP POST, чтобы создать новую запись в ArcGIS Server является следующее: http://server/arcgis/rest/services/layerName/FeatureServer/0/addFeatures

Как сказано в документации (http://resources.arcgis.com/en/help/rest/apiref/fsadd.html), операции, которые могут навсегда изменить состояние системы (добавление, обновление, удаление) являются операциями POST-only. В противном случае к клиенту будет отправлено соответствующее сообщение об ошибке с кодом ошибки 405 (метод не разрешен).

В Chrome и IE, чтобы запустить этот запрос POST и избежать проблемы с CORS, я использую прокси-сервер. Firefox вместо этого, чтобы определить, безопасно ли отправлять фактический запрос, сначала «предварите» запросы POST, отправляющие HTTP-запрос методом OPTIONS на ресурс в другом домене.

Учитывая, что ArcGIS Server принимает только POST-запросы для добавления функций и, учитывая, что Firefox сначала отправляет метод OPTIONS, у меня есть проблема с редактированием слоя с использованием Firefox. На самом деле, следующий запрос:

сервера// ArcGIS отдых/услуги/layerName/FeatureServer/0/addFeatures

возвращают код ошибки 405 (Метод не допускается).

Есть ли обход или метод устранения этой проблемы? Особенно учитывая, что, возможно, однажды, другие браузеры могут реализовать этот запрос OPTIONS по соображениям безопасности.

+0

Если Вы пользуетесь API JS, это может быть обработан, но так как это не так, это больше чистой ИТ-проблемы, которые могут быть лучше рассмотрены на StackOverflow. –

+0

Проблема связана с сервером arcgis, поэтому для mne связана с GIS – rick

+0

Другое, что Access-Control-Allow-Origin: *, что передается как Access-Control-Allow-Methods и Access-Control-Allow-Headers? – Luke

ответ

0

Есть 4 способа исправить вашу проблему, и каждый из способов зависит от архитектуры вашего сервера. (1-й способ - это просто настроить ваш сервер, а другой использует proxy page, который теперь поддерживает .NET, PHP, Java).

  1. Если вы можете управлять сервером ArcGIS.
  2. Если вы можете поместить прокси-страницу в том же месте, что и ваш веб-сервер. (Этот способ устранит проблему, используя ваш сервер для запроса на другой сервер, и больше не будет проблем с CORS.)
    • Просто выполните шаги в this.
  3. Если вы должны поместить прокси-страницу в другое место, и вы можете включить CORS на сервере, на котором размещена прокси-страница.
  4. Если вы должны поместить прокси-страницу в другое место, вы должны отредактировать страницу прокси, чтобы сначала принять и ответить на запрос предполетной проверки. (Этот способ позволит вашему серверу обрабатывать запросы перед полетом и принимает их сначала.)
    • Следуйте инструкциям в this.
    • После завершения настроек страницы прокси, вам необходимо отредактировать код прокси-страницы, чтобы принять и ответить на предпродажные запросы. Пожалуйста, взгляните на this.