Cors openlayers中阻止跨源请求-访问geoserver功能层时出现问题

Cors openlayers中阻止跨源请求-访问geoserver功能层时出现问题,cors,openlayers,postgis,geoserver,Cors,Openlayers,Postgis,Geoserver,我正在使用xampp和geoserver开发openlayers。我的openlayer应用程序正在URL上运行 我正在尝试访问URL 但我无法访问它。在浏览器控制台中,我有以下错误。 跨源请求被阻止:同一源策略不允许读取位于?的远程资源?。(原因:CORS请求未成功)。。 请帮我做这个 我在tomcat和geoserver中尝试了在web.xml中应用过滤器,如下所示 <filter> <filter-name>CorsFilter</filter-name&

我正在使用xampp和geoserver开发openlayers。我的openlayer应用程序正在URL上运行 我正在尝试访问URL

但我无法访问它。在浏览器控制台中,我有以下错误。 跨源请求被阻止:同一源策略不允许读取位于?的远程资源?。(原因:CORS请求未成功)。。 请帮我做这个

我在tomcat和geoserver中尝试了在web.xml中应用过滤器,如下所示

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
  <param-name>cors.allowed.methods</param-name>
  <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

also in geoserver webinf/web.xml I added


<filter>
        <filter-name>cross-origin</filter-name>
        <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
       <init-param>
           <param-name>chainPreflight</param-name>
           <param-value>false</param-value>
       </init-param>
       <init-param>
           <param-name>allowedOrigins</param-name>
           <param-value>*</param-value>
       </init-param>
       <init-param>
           <param-name>allowedMethods</param-name>
           <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value>
       </init-param>
       <init-param>
           <param-name>allowedHeaders</param-name>
           <param-value>*</param-value>
       </init-param>
    </filter>

克斯菲尔特
org.apache.catalina.filters.CorsFilter
cors.methods
获取、发布、头部、选项、放置
克斯菲尔特
/*
我还在geoserver webinf/web.xml中添加了
交叉起源
org.eclipse.jetty.servlets.CrossOriginFilter
飞行前
假的
允许起源
*
允许的方法
获取、发布、放置、删除、标题、选项
允许的标题
*

将代理添加到xampp配置中,使geoserver也位于localhost:8008,以便您可以通过localhost:8008/geoserver访问它

ProxyPass /geoserver/ http://localhost:8080/geoserver/

也许您需要在Apache配置中加载代理模块,以使用
ProxyPass
选项。

将代理添加到xampp配置中,使geoserver也位于localhost:8008,以便您可以通过localhost:8008/geoserver访问它

ProxyPass /geoserver/ http://localhost:8080/geoserver/

也许您需要在Apache配置中加载代理模块以使用
ProxyPass
选项。

我想我通过使用反向代理解决了类似的问题。我使用了IIS,所以我的解决方案对您没有帮助,但这可能是需要研究的。你可能会发现下面这样的帖子很有帮助:我想我通过使用反向代理解决了类似的问题。我使用了IIS,所以我的解决方案对您没有帮助,但这可能是需要研究的。您可能会发现以下帖子很有帮助: