ArcGIS Api for JS(4.13) urlUtils 配置代理proxy的坑(portal)

参照教程:

IIS:https://blog.csdn.net/peckerzeng/article/details/84770740

JSP:https://blog.csdn.net/idomyway/article/details/82770834

为什么要用代理?如果不用代理,远程访问服务的时候,每次都需要输入账号密码。没有配置代理时走的时get请求,会有最大url限制,以及会有跨域访问的问题。根据这些问题,就需要配置代理来解决。

get和post请求的url长度限制:https://blog.csdn.net/a460550542/article/details/72511343

坑:这里因为我用了portal来管理,proxy.config里的配置要跟之前不太一样。

再设置了url和matchAll的值之后,还要设置username和passward。如果是只用了server就是用的server的账号密码。如果还用了portal,这里填server的账号密码就没有用了,得填portal的账号密码。

url的填写也需要注意,不一定要按照以上教程的填,得按照访问地图服务时的url的根节点来填写。例如我这里需要访问的地图服务是

https://kfctest.coco.cn/server/rest/services/Hosted/ground。

那么配置文件里的url我需要填写的就是https://kfctest.coco.cn/server/rest/services,但是当我刷新的时候,我发现有需要访问https://kfctest.coco.cn/server/rest的请求,导致报错了,所以url需要改成https://kfctest.coco.cn/server/rest(将services)。这样这个请求才能完成。

这里url的概念就是远程启用代理服务时,能通过代理访问到的url。

设置完这里就需要设置前端代码了。

前端主要通过ArcGIS API的urlUtils接口来实现代理。

require(["esri/core/urlUtils"], function(urlUtils) { 
urlUtils.addProxyRule({
        urlPrefix: "https://kfctest.coco.cn"     //地图服务地址前缀,我这里是https
        proxyUrl: "http://12.20.1.128:2005/DotNet/proxy.ashx" //代理服务器中proxy.ashx文件的url
    })
 });

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ArcGIS API for JavaScript是一个用于构建地理信息系统应用程序的JavaScript库,它可以让开发人员在Web浏览器中使用地图、图层和空间分析。 Proxy代理ArcGIS API for JavaScript中用于解决跨域请求问题。当应用程序在不同的域上运行时,由于浏览器的同源策略限制,跨域请求可能会受到阻止。为了绕过这个限制,可以配置一个Proxy代理服务器来处理跨域请求。 在使用ArcGIS API for JavaScript中的Proxy代理时,可以选择使用不同的代理服务器。如果你使用的是.NET开发环境,可以配置一个ASP.NET代理服务器。 配置ASP.NET代理服务器需要以下步骤: 1. 创建一个新的ASP.NET项目。 2. 添加一个.asmx文件作为代理服务器的Web服务。 3. 在.asmx文件中编写代理服务器的逻辑,包括处理跨域请求的代码。 4. 在代理服务器代码中,首先判断请求是否来自ArcGIS API for JavaScript,并根据需要进行身份验证。 5. 如果请求符合要求,代理服务器将请求转发到目标服务器,并将其响应返回给浏览器。 例如,当使用ArcGIS API for JavaScript加载地图图层时,浏览器会发出跨域请求。代理服务器可以将这些请求转发到地图图层所在的服务器,并将响应返回给浏览器,绕过了同源策略的限制。 在ArcGIS API for JavaScript中配置代理时,可以指定代理服务器的URL和需要代理URL模式。这样,所有匹配指定URL模式的请求都将被转发到代理服务器。 总结而言,ArcGIS API for JavaScript中的Proxy代理可以通过配置一个ASP.NET代理服务器来解决跨域请求问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值