tomcat 为什么在Geoserver中启用CORS不起作用?[duplicate]

3lxsmp7m  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(160)

此问题在此处已有答案

has been blocked by CORS policy: The request client is not a secure context and the resource is in more-private address space local(2个答案)
上个月关门了。
我正在尝试将我的编程WebGis(OpenLayers 6.14.1)重写为node.js来服务它。我对这个问题很陌生。实际上,地理数据存储在POSTGIS数据库中,通过本地Tomcat中的Geoserver来服务。
Tomcat 9.0/webapps/geoserver/WEB-INF/web.xml文件中,我取消了启用CORS的两个部分的注解。

<filter>
      <filter-name>cross-origin</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>
      <init-param>
        <param-name>cors.allowed.methods</param-name>
        <param-value>GET,POST,PUT,DELETE,HEAD,OPTIONS</param-value>
      </init-param>
      <init-param>
        <param-name>cors.allowed.headers</param-name>
        <param-value>*</param-value>
      </init-param>
    </filter>

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

在MS Edge和Chrome中,我直接收到CORS错误,数据未显示:
第一个
在Firefox中,数据是显示的(有和没有激活的禁用CORS的扩展)。但是如果我向服务器发送POST请求(在应用程序内部向数据集添加新数据),我会得到这个错误:
请求代码:
第一个
当我单击此信息时,我会收到一个回答:

Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Content-Type
Access-Control-Allow-Methods: GET, HEAD, PUT, PATCH, POST, DELETE
Access-Control-Allow-Origin:*
Allow: GET, HEAD

我以前读过CORS - Tomcat - Geoserver,但是当我把上面提到的代码添加到/conf/web.xml中时,数据甚至没有显示在Firefox中。
有人知道该怎么做吗?

ulmd4ohb

ulmd4ohb1#

第一,“不允许”错误可能是因为您尚未进行身份验证,默认情况下,GeoServer要求先进行身份验证,然后用户才能更改基础数据。
CORS问题与专用网络有关,此answer中给出的解决方案是添加一个Access-Control-Allow-Private-Network标头或使用HTTPS(或turn off security)为客户端页面提供服务

相关问题