ArcGIS Server跨域问题解决方案

什么是跨域问题?

出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)

问题演示:

ArcGIS Server跨域问题解决方案_第1张图片

解决方案

ArcGis Server 的服务容器是Tomcat,所以我们要解决的其实是Tomcat的跨域问题!首先我们准备两个jar包cors-filter-1.7.jar和java-property-utils-1.9.1.jar,下面需要将jar包放到Tomcat的lib目录下。

寻找Tomcat目录:

  1. 打开任务管理器
  2. 寻找一个叫做ArcGisServer.exe的进程
  3. 右键打开文件位置

如果右键打开文件位置的路径为:C:\Program Files\ArcGis\Server\framework\etc\serivce\bin\ArcGisServer.exe,那么Tomcat的目录路径就应该是:C:\Program Files\ArcGis\Server\framework\runtime\tomcat。

找到Tomcat目录后,那么就按以下步骤操作:

  1. 将cors-filter-1.7.jar和java-property-utils-1.9.1.jar 这两个jar包复制到Tomcat 的lib目录下。
  2. 编辑Tomcat\conf\web.xml文件,在web-app标签内加入以下配置

    CORS
    com.thetransactioncompany.cors.CORSFilter

    
        cors.allowOrigin
        *
    

    
        cors.supportedMethods
        GET, POST, HEAD, PUT, DELETE
    

    
        cors.supportedHeaders
        Accept, Origin, X-Requested-With, Content-Type, Last-Modified
    

    
        cors.exposed.headers
        Access-Control-Allow-Origin,Access-Control-Allow-Credentials
    

    
        cors.exposedHeaders
        Set-Cookie
    

    
        cors.supportsCredentials
        true
    




    CORS
    /*

重启服务,解决问题!

你可能感兴趣的:(GIS技术)