是否可以将 CORS 标头添加到来自 Tomcat 容器中 j_security_check 的响应

Posted

技术标签:

【中文标题】是否可以将 CORS 标头添加到来自 Tomcat 容器中 j_security_check 的响应【英文标题】:Is it possible to add CORS headers to response from j_security_check in Tomcat container 【发布时间】:2019-03-31 00:58:31 【问题描述】:

尝试从在端口 8081 上运行的 app1 到在端口 8088 上运行的 app2 进行 ajax 调用时出现以下错误。由于 CORS 问题,浏览器阻止了重定向。

无法加载 http://localhost:8088/j_security_check?j_username=admin&j_password=admin:从“http://localhost:8088/j_security_check?j_username=admin&j_password=admin”重定向到“http://localhost:8088/resource”已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:8081' 因此不允许访问。

有没有办法将 CORS 标头添加到自定义 j_security_check 类的响应中?

【问题讨论】:

【参考方案1】:

尝试在tomcat的web.xml中添加下面的过滤器

<filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern> /* </url-pattern>
</filter-mapping>

并检查

【讨论】:

我已经试过这个过滤器了。它适用于所有 servlet,但不适用于 j_security_check 身份验证。

以上是关于是否可以将 CORS 标头添加到来自 Tomcat 容器中 j_security_check 的响应的主要内容,如果未能解决你的问题,请参考以下文章

在 Tomcat 中设置 CORS 标头

来自 IE 或 Firefox 的 CORS 请求中没有 Referer 标头

如何将 CORS 标头添加到 401/403 响应?

是否可以在调用端服务器上为 CORS 添加标头?

Django-添加到服务器标头(CORS)

创建 React App 添加 CORS 标头