此问题在此处已有答案:
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中。
有人知道该怎么做吗?
1条答案
按热度按时间ulmd4ohb1#
第一,“不允许”错误可能是因为您尚未进行身份验证,默认情况下,GeoServer要求先进行身份验证,然后用户才能更改基础数据。
CORS问题与专用网络有关,此answer中给出的解决方案是添加一个
Access-Control-Allow-Private-Network
标头或使用HTTPS(或turn off security)为客户端页面提供服务