Wenn Sie eine App bereitstellen, müssen Sie gegebenenfalls einen Proxy verwenden. Web AppBuilder unterstützt die Verwendung von Proxys in den folgenden Situationen:
- Zugreifen auf domänenübergreifende Ressourcen
- Anforderungen, die mehr als 2048 Zeichen enthalten
- Zugreifen auf durch eine Token-basierte Authentifizierung geschützte Ressourcen
- OAuth 2.0-basierte App-Anmeldungen
- Aktivieren der Protokollierung
- Sowohl Ressourcen- als auch Referrer-basierte Ratenbeschränkung
Die heruntergeladene App verwendet standardmäßig den von Portal for ArcGIS bereitgestellten Proxy. Legen Sie Ihren eigenen Proxy und Ihre Regeln in der Eigenschaft httpProxy in der Konfigurationsdatei der App fest. Die Eigenschaft httpProxy enthält folgende Attribute:
Attribute | Beschreibung |
---|---|
useProxy | Boolesch. Optional. Standard: „true“. Wenn „false“, verwenden alle Anforderungen keinen Proxy. |
URL | Zeichenfolge. Optional. Die URL zum Proxy. Wenn die Anforderung keine Proxy-Regel erfüllt, jedoch einen Proxy verwenden muss, wie bei einer domänenübergreifenden Anforderung, dann wird dieser Proxy verwendet. |
alwaysUseProxy | Boolesch. Optional. Gibt an, ob der Proxy immer für die Kommunikation mit einem REST-Endpunkt verwendet werden soll. Standard: „false“. Wenn die Anforderung keine Proxy-Regel erfüllt und keinen Proxy benötigt, prüft die App diese Eigenschaft, um festzulegen, wie der Proxy weiter verwendet wird. Wenn „false“, verläuft die Anforderung nicht über den durch url referenzierten Proxy. Wenn „true“, verläuft die Anforderung über den durch url referenzierten Proxy. |
rules | Objekt[]. Optional. Definiert den Proxy für einen Satz Ressourcen mit demselben URL-Präfix. Wenn die Anforderungs-URL einer Regel entspricht, wird die Anforderung durch den Proxy geleitet. Jede Regel besitzt zwei Eigenschaften:
|
Vorsicht:
Wenn useProxy auf "false" gesetzt ist und eine Anforderung mehr als 2048 Zeichen umfasst, wird eine POST- anstelle einer GET-Anforderung gesendet. Außerdem kann eine POST-Anforderung erfolgreich direkt an den Service gesendet werden, wenn der Service CORS unterstützt. Andernfalls kann die POST-Anforderung nicht ausgeführt werden. Wenn useProxy auf "true" gesetzt ist und eine POST-Anforderung gesendet wird, wird die POST-Anforderung automatisch vom Proxy gesendet, wenn der Service CORS nicht unterstützt.
Der folgende Ablauf zeigt, wie Proxys im Bezug auf die obigen Attribute arbeiten:
- Die App überprüft useProxy.
- Wenn „false“, verwenden alle Anforderungen keinen Proxy.
- Wenn „true“, überprüft die App rules.
- Wenn die Anforderung den Proxy-Regeln entspricht, verwendet die App den in den Regeln festgelegten Wert von proxyUrl.
- Wenn die Anforderung keine Proxy-Regel erfüllt, jedoch einen Proxy verwenden muss, wie bei einer domänenübergreifenden Anforderung, dann verwendet die App den durch url referenzierten Proxy.
- Wenn die Anforderung den Proxy-Regeln nicht entspricht und auch keinen Proxy erfordert, überprüft die App alwaysUseProxy weiter.
- Wenn „false“, verläuft die Anforderung nicht über den durch url referenzierten Proxy.
- Wenn „true“, verläuft die Anforderung über den durch url referenzierten Proxy.
Beispiel:
"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"
}]
}
Esri bietet zusätzlich drei Proxys, die jeweils auf eine bestimmte serverseitige Plattform ausgerichtet sind: ASP.NET, Java/JSP und PHP. Laden Sie den für Ihre Plattform passenden Proxy von GitHub herunter und stellen Sie ihn bereit. Weitere Beispiele aus dem Blogbeitrag finden Sie unter Using the proxy und Setting up a proxy with Web AppBuilder.