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

CORS enable but request header got mixed up from different host

我有一个 tomcat 8 服务器,在 web.xml 中启用了 CORS。 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 上运行他的 dev-server。

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

我使用的 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 中使用它导致 mix-up 并阻止所有请求?

如果将 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 设置为 * 吗?