首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CORS - Tomcat - Geoserver

CORS - Tomcat - Geoserver
EN

Stack Overflow用户
提问于 2014-03-12 20:34:18
回答 4查看 30K关注 0票数 30

所有这些,我都试图在Tomcat 7.0.52上为Geoserver启用CORS。

我在tomcat中修改了conf中的web.xml,这是Filter中指定的。

但是,这并没有帮助在标题中设置交叉起源。我甚至对geoserver /web.xml进行了尝试,但没有帮助。

如有任何建议,敬请见谅。

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-07-29 21:51:18

我也需要这样做,以避免在OpenLayers中使用代理。

自从运行Ubuntu12.04以来,我已经安装了Tomcat 7.0.55,而不是默认的7.0.26 (从包中安装)。

要添加CORS标头,我只需向$CATALINA_HOME/conf/web.xml添加以下行:

代码语言:javascript
复制
<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
  <init-param>
    <param-name>cors.allowed.origins</param-name>
    <param-value>*</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

然后重新启动tomcat。

例如,当我试图从运行在http://development.localhost.lan/geoserver/wfs上的应用程序中的Geoserver获取URL http://development.localhost.lan/geoserver/wfs时,会得到以下标题:

请求的头:

代码语言:javascript
复制
POST /geoserver/wfs HTTP/1.1
Host: development.localhost.lan
Origin: http://localhost:3000
X-Requested-With: XMLHttpRequest
(...)

响应头:

代码语言:javascript
复制
Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://localhost:3000
Connection:Keep-Alive
Content-Disposition:inline; filename=geoserver-GetFeature.text
Content-Encoding:gzip
Content-Length:469
Content-Type:text/xml; subtype=gml/3.1.1
Date:Tue, 29 Jul 2014 21:31:08 GMT
Keep-Alive:timeout=5, max=100
Server:Apache-Coyote/1.1

这适用于Chrome (Ver )。35.0.1916.153)和Firefox (Ver.31.0)。

票数 48
EN

Stack Overflow用户

发布于 2015-03-25 15:44:00

我需要在CorsFilter中添加以下内容,以确保允许飞行前的“选项”请求

代码语言:javascript
复制
<init-param>
  <param-name>cors.allowed.methods</param-name>
  <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
票数 6
EN

Stack Overflow用户

发布于 2020-04-09 00:03:51

在我的例子中,我使用kartoza/ geoserver.war映像,我不得不从GeoServer网站下载GeoServer war文件(对于码头映像中使用的版本),并将geoserver.war文件添加到目录/usr/local/ tomcat /webapp/并重新启动tomcat。

只有使用上面的配置,我才能启用CORS。仅将corsFilter代码添加到web.xml并重新启动tomcat,就会导致访问GeoServer时出现404错误。因此,在添加了war文件之后,corsFilter代码就被识别出来了,并且运行良好。

我希望这能帮助有类似错误的人。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22363192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档