前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决ArcGis Server跨域问题

解决ArcGis Server跨域问题

作者头像
Melody132
发布2020-03-11 17:59:46
2.4K0
发布2020-03-11 17:59:46
举报
文章被收录于专栏:时光笔记时光笔记

前言

什么是跨域问题?

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

问题演示:

请输入图片描述
请输入图片描述

解决方案

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 Files\ArcGis\Server\framework\etc\serivce\bin\ArcGisServer.exe,那么Tomcat的目录路径就应该是:C:\Program Files\ArcGis\Server\framework\runtime\tomcat。

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

  1. cors-filter-1.7.jarjava-property-utils-1.9.1.jar 这两个jar包复制到Tomcat 的lib目录下。
  2. 编辑Tomcat\conf\web.xml文件,在web-app标签内加入以下配置
代码语言:javascript
复制
<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>

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 解决方案
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档