最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

找到的OpenLayers跨域访问WFS服务出现No'Access

来源:动视网 责编:小采 时间:2020-11-09 07:19:15
文档

找到的OpenLayers跨域访问WFS服务出现No'Access

找到的OpenLayers跨域访问WFS服务出现No'Access:在eclipse中部署了一个使用OpenLayers的Java web项目CrossDomainTest,容器为Tomcat 7.0.56.(http://localhost:8080/CrossDomainTest/index.html) 利用Geoserver 2.5.2使用内置容器jetty 6.18发布WFS服务.(http://l
推荐度:
导读找到的OpenLayers跨域访问WFS服务出现No'Access:在eclipse中部署了一个使用OpenLayers的Java web项目CrossDomainTest,容器为Tomcat 7.0.56.(http://localhost:8080/CrossDomainTest/index.html) 利用Geoserver 2.5.2使用内置容器jetty 6.18发布WFS服务.(http://l


在eclipse中部署了一个使用OpenLayers的Java web项目CrossDomainTest,容器为Tomcat 7.0.56.(http://localhost:8080/CrossDomainTest/index.html) 利用Geoserver 2.5.2使用内置容器jetty 6.18发布WFS服务.(http://localhost:8888/geoserver/wfs). 从localh

在eclipse中部署了一个使用OpenLayers的Java web项目CrossDomainTest,容器为Tomcat 7.0.56.(http://localhost:8080/CrossDomainTest/index.html)

利用Geoserver 2.5.2使用内置容器jetty 6.18发布WFS服务.(http://localhost:8888/geoserver/wfs).

从localhost:8080访问localhost:8888的WFS无法得到预期效果,通过chrome浏览器开发者工具发现错误:No 'Access-Control-Allow-Origin' header is present on the requested resource. 查阅发现是所谓的Javascript安全性导致的“跨域问题”,找了很多的解决方法,比如设置cgi代理,CORS(跨域资源共享)等我都尝试了但不知为何没有成功,限于时间关系没有仔细追究,最后找到[Geoserver-users] CORS for jetty 6.1.8 (Geoserver 2.x), solved这篇文章,按其设置解决了问题:

解决方案步骤为:
1.从这里下载ZIP文件,解压后放到\webapps\geoserver\WEB-INF\classes文件夹中。
2.向\webapps\geoserver\WEB-INF\文件夹中的web.xml文件中增加如下配置文件允许所有域的跨域资源共享
 
 cross-origin
 org.mortbay.servlets.CrossOriginFilter
 
 allowedOrigins
 *
 
 
 allowedMethods
 GET,POST
 
 
 allowedHeaders
 x-requested-with,content-type
 
 
	
 cross-origin
 /*
 

重启GeoServer,稍等片刻跨域访问就成功了,祝好运。原文主要内容如下:
的方法解决了问题。原文内容为
I was looking on Geoserver cross domain support (no-proxy) recently and I
managed to get it working by compiling custom filter for Jetty 6.1.8. The
filter is based on CrossOriginFilter which is supplied with newer versions
of jetty-servlets.jar. I have fixed some white-space bugs and tested it
with OpenLayers 2.12, IE, FF and Chrome.

You can follow the same rules as described here:
http://wiki.eclipse.org/Jetty/Feature/Cross_Origin_Filter but:

1.Do not include the jar. Instead, put content of this archive
http://shanbe.hezoun.com/cors.zip into the
\webapps\geoserver\WEB-INF\classes folder.
2. use org.mortbay.servlets.CrossOriginFilter
 insteand of
org.eclipse.jetty.servlets.CrossOriginFilter
3. do not use additional spaces in allowedHeaders defs (like this:
"x-request-with, content-type")

You can put follwing conf. inside the \webapps\geoserver\web.xml
to allow CORS requests from all domains:


 cross-origin
 org.mortbay.servlets.CrossOriginFilter
 
 allowedOrigins
 *
 
 
 allowedMethods
 GET,POST
 
 
 allowedHeaders
 x-requested-with,content-type
 
 
...
 
 cross-origin
 /*
 

..restart the geoserver and it should work.

文档

找到的OpenLayers跨域访问WFS服务出现No'Access

找到的OpenLayers跨域访问WFS服务出现No'Access:在eclipse中部署了一个使用OpenLayers的Java web项目CrossDomainTest,容器为Tomcat 7.0.56.(http://localhost:8080/CrossDomainTest/index.html) 利用Geoserver 2.5.2使用内置容器jetty 6.18发布WFS服务.(http://l
推荐度:
标签: 出现 访问 服务
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top