JavaScript API中如何设置只让部分服务通过代理访问

如何在应用中设置某些特定的服务访问是通过代理访问,而其他服务则不通过代理直接访问。
已邀请:

桂朝

赞同来自:

【解决办法】:
分析:当访问请求不存在跨域问题或者请求的服务器支持CORS特性(ArcGIS Server10.1以上版本),则请求可以直接得到响应,不需要通过代理文件;或者即便通过esriConfig.defaults.io.proxyUrl = /proxy/设置了代理文件,请求也不会走代理来访问。
要强制某些服务地址始终通过代理文件来访问,则需要完成以下配置:
1、为应用设置对应web server版本的proxy代理文件,在proxy.config中设置需要走代理的服务URL,代理配置:
【代码】
<serverUrl
url=http://route.arcgis.com
matchAll=true
clientId=*****
clientSecret=******
rateLimit=120
rateLimitPeriod=60/>
[/code]

2、在应用中,使用urlUtils.addProxyRule方法,
【代码】
require([
esri/urlUtils,
...], function(urlUtils,
...
){
urlUtils.addProxyRule({
urlPrefix: route.arcgis.com,
proxyUrl: /proxy/
});
[/code]
示例:https://developers.arcgis.com/ ... .html

要回复问题请先登录注册