使用OpenLayers请求GeoServer发布的WFS服务时,如果不是相同的域可能会出现如下问题。

已拦截跨源请求:同源策略禁止读取位于 http://localhost:8080/geoserver/weng_test/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=weng_test:
dw_country&maxFeatures=50&outputFormat=application%2Fjson 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。

Geoserver 测试版本为 2.12.1。可有以下两种方案。

方案1

(1)下载跨域jar包jetty-servlets.jar

下载geoserver使用的对应jetty版本——可以查看<Geoserver>\lib下jetty-servlet.jar (如,Geoserver 2.12.1 版本下的为 jetty-servlet-9.2.13.v20150730.jar)的版本作为对照。

下载地址:http://central.maven.org/maven2/org/eclipse/jetty/jetty-servlets/

并将jar包放到<Geoserver>\webapps\geoserver\WEB-INF\lib文件夹下。

(2)filter的位置

打开<Geoserver>\webapps\geoserver\WEB-INF\web.xml文件,找到文件中<filter>平级的位置,添加如下内容:

<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.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>

(3) filter-mapping设置

找到文件中<filter-mapping>平级的位置,添加如下内容:

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

(4) 重启Geoserver服务

方案2

(1)下载cors-filter-1.7.jar,Java-property-utils-1.9.jar两个库文件

下载后,将其放到<Geoserver>\webapps\geoserver\WEB-INF\lib目录下。

下载地址:http://files.cnblogs.com/files/ytwy/jar.rar

(2)filter设置

打开<Geoserver>\webapps\geoserver\web.xml文件,找到文件中<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.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>

(3) filter-mapping设置

找到文件中<filter-mapping>平级的位置,添加如下内容:

<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

参考文章

GeoServer配置CORS(跨域资源共享)  , Tomcat形式的Geoserver跨域设置。

GeoServer跨域设置

浏览器拦截跨域请求处理方法(已阻止跨源请求:同源策略禁止读取远程资源)

Geoserver WFS跨域设置

最新文章

  1. Ruby的模型关系随笔
  2. Ignite安装配置——中篇
  3. jQuery(一)
  4. linux wget 命令用法详解(附实例说明)
  5. Designing CSS Layouts With Flexbox Is As Easy As Pie
  6. UVa 11609 (计数 公式推导) Teams
  7. Python之路第七天,基础(9)-面向对象(上)
  8. 在CentOS7部署zookeeper集群以及简单API使用
  9. Git从远程库克隆
  10. Java下一个简单的数据库分库帮助类
  11. MySQL下载与MySQL安装图解(MySQL5.7与MySQL8.0)
  12. LeetCode题解Maximum Binary Tree
  13. [No0000D8]rar合并到JPG.bat用图片隐藏文件
  14. logrotate: 管理日志文件
  15. UNIX环境编程学习笔记(5)——文件I/O之fcntl函数访问已打开文件的性质
  16. 文件的存储GridFS
  17. [php]php总结(1)
  18. SQLite 自定义函数,聚合,排序规则
  19. static 与 extern 关键字描述说明
  20. [BZOJ4000][TJOI2015]棋盘(状压DP+矩阵快速幂)

热门文章

  1. iOS 中的视图函数 init initwithnib viewDidLoad viewWillAppear的总结
  2. zoj 4057
  3. linux学习-主机的细部权限规划:ACL 的使用
  4. Centos启动时停止在登录界面但不显示登录信息(一直在转圈)
  5. HDU 5614 Baby Ming and Matrix tree 树链剖分
  6. Linux的档案权限与目录配置
  7. Nginx与Lua的开发
  8. 基于AOP的优惠券发送异常哨兵监控
  9. Python3下基于bs4和sqlalchemy的爬虫实现
  10. Vmware复制完好的linux目录后网卡操作