使用代理
部署应用程序时,您可能需要使用代理。在下列情况下,Web AppBuilder 支持使用代理:
- 访问跨域资源
- 超过 2048 个字符的请求
- 访问受基于令牌的身份验证保护的资源
- OAuth 2.0 应用程序登录。
- 启用记录
- 基于资源和 referer 的比率限制
默认情况下,已下载的应用程序使用由 Portal for ArcGIS 提供的代理。 可通过修改应用程序配置文件中的 httpProxy 属性来指定您自己的代理和规则。httpProxy 包括以下属性。
属性 | 说明 |
useProxy | 布尔型。可选。默认值:true。如果为 false,则所有请求均不能使用代理。 |
url | 字符串。可选。用于指定代理位置的 URL。如果请求与任意代理规则均不匹配但必须使用代理(例如跨域请求),则会使用此代理。 |
alwaysUseProxy | 布尔型。可选。指定是否始终将代理用于与 REST 端点进行通信。默认值:false。如果请求与任意代理规则均不匹配且不需要代理,则应用程序会检查该属性,以决定如何进一步使用代理。如果为 false,则请求不能使用引用 url 的代理。如果为 true,则请求可以使用引用 url 的代理。 |
规则 | Object[]。可选。为具有相同 URL 前缀的一组资源定义代理。如果请求 URL 与规则匹配,则请求会通过代理发送。每个规则具有两个属性:
|
下列内容介绍代理如何基于上述属性发挥作用:
- 首先,应用程序检查 useProxy。
- 如果为 false,则所有请求均不使用代理。
- 如果为 true,则应用程序继续检查规则。
- 如果请求与代理规则匹配,则应用程序使用规则中设置的 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"
}]
}
此外,Esri 可提供三种代理,每种代理针对一种特定服务器端平台:ASP.NET、Java/JSP 和 PHP。请从 GitHub 下载并部署适合您平台的代理。此外,有关详细信息,请参阅使用代理页面。