gpt4 book ai didi

java - NodeJS 服务器到 Tomcat 服务器的 CORS 问题

转载 作者:行者123 更新时间:2023-11-28 23:20:44 25 4
gpt4 key购买 nike

我有使用 Java Spring 编写并部署在 tomcat 服务器上的后端 Web 服务,使用 HTTPS 协议(protocol)在端口 8443 上使用 IP 地址 XXX.XXX.XXX.XXX。

我有一个使用 React JS 和 create-react-app 脚手架编写的前端应用程序,它使用 jQuery AJAX 使用 JAVA spring 应用程序公开的其余 api 服务。我已经构建了 js 文件并进行了捆绑,并通过一个简单的 Node 服务器提供服务。该 Node 服务器托管在端口 8443 上的 IP 地址 YYY.YYY.YYY.YYY 上。

从浏览器到前端,我试图点击 POST 调用,但它在使用请求方法作为 OPTIONS 的飞行前操作失败。

尝试通过 HTTPS 协议(protocol)为 YYY.YYY.YYY.YYY 提供服务,但遇到同样的问题。

spring 应用程序启用了 CORS 过滤并接受来自任何域的请求。

需要遇到过相同问题的专家建议以及您是如何解决的。

最佳答案

这是一个非常常见的问题,有一个简单的解决方案。几周前我遇到过这个问题。这就是我修复它的方式。在您的 tomcat web.xml 文件中添加以下过滤器。

<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,DELETE</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,Authorization,Content-
Disposition</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-
Credentials,Content-Disposition</param-value>
</init-param>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.preflight.maxage</param-name>
<param-value>10</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

这绝对可以解决您的问题。享受

关于java - NodeJS 服务器到 Tomcat 服务器的 CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44202786/

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