gpt4 book ai didi

tomcat - CORS 启用但请求 header 从不同的主机混淆

转载 作者:行者123 更新时间:2023-11-28 21:46:47 27 4
gpt4 key购买 nike

我有一个在 web.xml 中启用了 CORS 的 tomcat 8 服务器。CORS 插件适用于大多数情况,但有时它会混淆来自本地主机和服务器主机的 header 请求

XMLHttpRequest cannot load http://mipldevlinux7:6060/juneberry/data/blue-marbles/config.json. The 'Access-Control-Allow-Origin' header has a value 'http://localhost:3000' that is not equal to the supplied origin. Origin 'http://mipldevlinux7:7777' is therefore not allowed access

我的 tomcat 服务器位于端口 6060 上名为 mipldevlinux7 的服务器上,我在同一主机上的端口 7777 上有一个生产服务器.

我在 localhost:3000 上进行开发,而我的同事在 localhost:8080 上运行他的开发服务器。

我们遇到了 CORS 错误,该错误将我们本地主机之间的 header 混合为 3000,有时为 8080。有时我们甚至会收到 mipledevlinux7:7777 的 header 请求,说明我们是从本地主机请求的。

我使用的 CORS 是提供的 CORS tomcat 8 中的构建:

<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>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers,Last-Modified</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
</init-param>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

tomcat 是在缓存请求 header 还是以某种方式使用它作为最后一个请求 header ,这导致混淆并阻止了所有请求?

最佳答案

如果将 cors.support.credentials 设置为 true,请将 cors.preflight.maxage 设置为 -1 以禁用浏览器缓存:

<init-param>
<param-name>cors.preflight.maxage</param-name>
<param-value>-1</param-value>
</init-param>

您确定要将 cors.allowed.origins 设置为 * 吗?

关于tomcat - CORS 启用但请求 header 从不同的主机混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29403642/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com