直接把https://github.com/Esri/resource-proxy下载的Java拷贝到Tomcat的webapps目录,修改Java目录为httpproxy。启动后测试
‘’
默认proxy.config只会代理services.arcgisonline.com,所以访问下面地址会出错
配置proxy.jsp增加需要代理的地址,下面配置的proxy_log.log在tomcat的bin目录。
再次访问成功
在网页中如何使用,虽然这里alwaysUseProxy用了false,但是html中使用request请求的时候会通过代理去调用。
在WMTSLayer代码有用request去请求传入url地址的GetCapacities.
因为html和请求的地址跨域,所以可以用代理来处理跨域。
http://t0.tianditu.gov.cn配置到proxy.config。测试网页也放在TOMCAT下,避免跨域。只要网页配置如下代码,则使用esrirequest的时候就会通过proxy去请求。
方式一:
esri.config.defaults.io.proxyUrl="http://localhost:8080/httpproxy/proxy.jsp/Java/proxy.jsp";
esri.config.defaults.io.alwaysUseProxy= false;
方式二:和一一样,写法amd方式alwaysUseProxy默认为false,应该就是不符合代理规则的情况就不使用代理
require(["esri/config"], function(esriConfig)
{
esriConfig.defaults.io.proxyUrl = "http://localhost:8080/httpproxy/proxy.jsp"
esriConfig.defaults.io.alwaysUseProxy = false;
});
方式三:符合urlPrefix的才走代理
urlUtils.addProxyRule({
urlPrefix:"t0.tianditu.gov.cn",
proxyUrl:"http://localhost:8080/httpproxy/proxy.jsp"
});
在network中可以看到如下请求。