zoukankan      html  css  js  c++  java
  • 解决ArcGis Server跨域问题

    什么是跨域问题?

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

    问题演示:

    pic_3f7e2766.png

    解决方案

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

    寻找Tomcat目录:

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

    如果右键打开文件位置的路径为:C:Program FilesArcGisServerframeworketcserivceinArcGisServer.exe,那么Tomcat的目录路径就应该是:C:Program FilesArcGisServerframework untime omcat。

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

    1. cors-filter-1.7.jarjava-property-utils-1.9.1.jar 这两个jar包复制到Tomcat 的lib目录下。
    2. 编辑Tomcatconfweb.xml文件,在web-app标签内加入以下配置
    <filter>
        <filter-name>CORS</filter-name>
        <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
    
        <init-param>
            <param-name>cors.allowOrigin</param-name>
            <param-value>*</param-value>
        </init-param>
    
        <init-param>
            <param-name>cors.supportedMethods</param-name>
            <param-value>GET, POST, HEAD, PUT, DELETE</param-value>
        </init-param>
    
        <init-param>
            <param-name>cors.supportedHeaders</param-name>
            <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
        </init-param>
    
        <init-param>
            <param-name>cors.exposed.headers</param-name>
            <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
        </init-param>
    
        <init-param>
            <param-name>cors.exposedHeaders</param-name>
            <param-value>Set-Cookie</param-value>
        </init-param>
    
        <init-param>
            <param-name>cors.supportsCredentials</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    
    
    <filter-mapping>
        <filter-name>CORS</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    两步操作完之后,重启服务器就可以解决问题!

  • 相关阅读:
    python二维数组切片
    [转载]MIPS常用指令及实例
    使用vim编程步骤
    数组指针和指针数组
    线程基础
    顶层const和底层const
    递归调用
    输出流
    C++代码规范
    I/O流
  • 原文地址:https://www.cnblogs.com/hustshu/p/14628136.html
Copyright © 2011-2022 走看看