zoukankan      html  css  js  c++  java
  • 基于CORS的GeoServer跨域访问策略

    GeoServer的跨域访问问题,有多种解决方法,本文介绍一种基于CORS的GeoServer跨域访问方法。

    CORS简介

    CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。 CORS是一种允许当前域(domain)的资源(比如html/js/web service)被其他域(domain)的脚本请求访问的机制,它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。通常由于同域安全策略(the same-origin security policy)浏览器会禁止这种跨域请求。

    CORS需要浏览器和服务器同时支持。浏览器支持情况如下图所示:

    整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。 因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。

    基于CORS的GeoServer跨域访问

    首先下载cors压缩包,下载地址http://shanbe.hezoun.com/cors.zip ,解压开就是一个org文件夹。

    将此文件夹复制到GeoServer目录下:D:Program Files (x86)GeoServer 2.7.6webappsgeoserverWEB-INFclasses

     配置Geoserver工程的web.xml文件,该文件目录:D:Program Files (x86)GeoServer 2.7.6webappsgeoserverWEB-INFweb.xml

    在filter集合末尾额外加一个filter,代码如下:

       <filter>  
          <filter-name>cross-origin</filter-name>  
            
          <filter-class>org.mortbay.servlets.CrossOriginFilter</filter-class>  
          <init-param>  
            <param-name>allowedOrigins</param-name>  
            <param-value>*</param-value>  
          </init-param>  
          <init-param>  
           <param-name>allowedMethods</param-name>  
           <param-value>GET,POST</param-value>  
          </init-param>  
          <init-param>  
           <param-name>allowedHeaders</param-name>  
           <param-value>x-requested-with,content-type</param-value>  
          </init-param>  
       </filter>   

    在filter-mapping集合末尾额外加一个filter-mapping,代码如下:

        <filter-mapping>  
            <filter-name>cross-origin</filter-name>  
            <url-pattern>/*</url-pattern>  
        </filter-mapping>  

    至此配置完毕。重启GeoServer即可利用CORS来跨域访问了

  • 相关阅读:
    oracle中查询表中先排序再取出前10条数据
    oracle中的数据类型
    读取Oracle中的clob字段
    实现json的序列化和反序列化
    在oracle中where 子句和having子句中的区别
    Oracle Clob字段保存时提示字符串过长
    读取文件夹中的文件并修改数据库中的数据
    【转】display:none与visible:hidden的区别
    实现http访问
    动态生成并执行SQL语句
  • 原文地址:https://www.cnblogs.com/hans_gis/p/7606553.html
Copyright © 2011-2022 走看看