阅读背景:

自己构建Ajax请求进行模拟QueryTask进行查询

来源:互联网 

ArcGIS JS API中用Query和QueryTask进行查询的时候其实是进行的Ajax请求,只不过是将该Ajax请求进行了封装,更好的方便二次开发人员调用而已。有时候我们用QueryTask进行查询的时候,传的参数的数据可能比较大,比如query.geometry经过序列化后超过了2KB,那么就需要执行post请求,这样就会造成ajax的跨域访问问题。一般的解决办法是使用ArcGIS所提供的代理文件proxy.jsp、proxy.ashx、proxy.php,使用的时候配置如下esri.config.defaults.io.proxyUrl = "https://samedomain:sameport/proxy/proxy.jsp",这样在用各种Task进行ajax请求的时候,如果数据量超过2KB,就会自动使用代理,但是使用的前提是要将你进行查询的地图服务的url写到proxy.jsp的serverUrls中(目的是为了进行检验要进行查询的服务是否能够使用代理),由于某些原因,我在使用的过程中不能将要查询的服务地址放到代理文件中,这样就不能使用代理了。ArcGIS JS API中用Query和QueryTask进行查询的时候其实是进行的Ajax




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: