跨源请求在openlayers中被阻止-访问地理服务器要素图层时出现问题

时间:2019-04-11 07:24:11

标签: cors openlayers postgis geoserver

我正在使用xampp和geoserver在openlayers上工作。我的openlayer应用程序在URL上运行 http://localhost:8008我正在尝试访问URL http://localhost:8080/geoserver/workspace

但是我无法访问它。在浏览器控制台中,我遇到以下错误。 跨域请求被阻止:同源策略禁止读取https://localhost:8080/geoserver/workspace/ows?处的远程资源。 (原因: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>

1 个答案:

答案 0 :(得分:0)

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

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

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