При развертывании приложения вам может понадобиться прокси. Web AppBuilder поддерживает работу с прокси в следующих ситуациях:
- Доступ к междоменным ресурсам
- Запросы, превышающие 2048 символов
- Доступ к ресурсам, защищенным аутентификацией на основе токенов
- Учетные записи приложения OAuth 2.0
- Включение журналирования
- Ограничение скорости на основе ресурса и источника
По умолчанию загруженное приложение использует прокси ArcGIS Online. Укажите свой прокси и правила, изменив свойство httpProxy в файле конфигурации приложения. Свойство httpProxy содержит следующие атрибуты:
Атрибут | Описание |
---|---|
useProxy | Boolean. Необязательно. По умолчанию: true. Если значение равно false, все запросы не будут использовать прокси. |
url | Строка. Необязательно. URL местоположения прокси. Если запрос не соответствует правилам прокси, но должен его использовать, например при междоменном запросе, прокси будет использоваться. |
alwaysUseProxy | Boolean. Необязательно. Определят, будет ли всегда использоваться прокси для связи с конечной точкой REST. По умолчанию: false. Если запрос не соответствует никакому правилу прокси и не нуждается в прокси, приложение проверит это свойство, чтобы определить, каким образом использовать прокси в дальнейшем. Если false, запрос не проходит через url указанного прокси. Если true, запрос проходит через url указанного прокси. |
правила | Object[]. Необязательно. Задает прокси для набора ресурсов с одинаковым префиксом URL. Если URL запроса соответствует правилу, запрос проходит через прокси. У каждого правила есть два свойства:
|
Внимание:
Когда для useProxy задано false, а запрос более 2048 знаков, отсылается запрос POST вместо GET. Также, если сервис поддерживает CORS, запрос POST может быть успешно отослан непосредственно к сервису. Иначе запрос POST не сработает. Когда для useProxy задано true и отправляется запрос POST, если сервис не поддерживает CORS, запрос POST будет отправлен прокси-сервером автоматически.
Ниже показывается, как работает прокси с описанными выше атрибутами:
- Приложение проверяет useProxy.
- Если оно равно false, все запросы не используют прокси.
- Если true, приложение проверяет rules.
- Если запрос соответствует правилам прокси, приложение использует свойство proxyUrl, заданное в правилах.
- Если же запрос не соответствует правилам прокси, но должен его использовать, например, при междоменном запросе, приложение использует свойство url указанного прокси.
- Если запрос не соответствует правилам прокси или не должен его использовать, приложение продолжает проверять свойство alwaysUseProxy.
- Если false, запрос не проходит через url указанного прокси.
- Если true, запрос проходит через url указанного прокси.
Пример:
"httpProxy": {
"useProxy": true,
"url": "http://gallery.chn.esri.com/arcgis/sharing/proxy",
"alwaysUseProxy": false,
"rules": [{
"urlPrefix": "http://route.arcgis.com/",
"proxyUrl": "resource-proxy-1.0/DotNet/proxy.ashx"
}]
}