gpt4 book ai didi

node.js - NodeJS 上的 React 可以 POST 到 Spring Boot REST API,但无法 PUT 到相同的 API - CORS 问题

转载 作者:太空宇宙 更新时间:2023-11-04 01:50:30 26 4
gpt4 key购买 nike

在 Node 上运行的 React 应用程序可以对 Spring Boot REST API 进行 GET 和 POST 调用,但是当它尝试调用 PUT 时,浏览器控制台会显示 OPTIONS 请求返回 403 并在控制台中显示以下消息:

Failed to load http://localhost:8080/project/65: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 403.

我可以从 Postman 进行相同的 PUT 调用,效果很好。

我的 Spring Boot 应用程序具有以下 CORS 配置,但这仅适用于自身提供的 HTML,对 React 应用程序没有影响?

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("http://localhost:8080", "http://localhost:3000");
}
}

在 Node 中启用 CORS 的大量 Google 搜索已经找到了很多有关 Express 的内容,但这似乎没有帮助。

最佳答案

由于浏览器作为强制 cors 的工作方式,因此很难允许本地主机(从浏览器)使用 cors。

顺便说一句:这就是为什么它可以与工具一起使用(在浏览器中运行除外),因为它们不是浏览器,因此不会发生强制。

最简单的方法是运行中间件 Node 快速服务器。

由于http服务器不会在请求中填充cors,因此应该不再有cors问题。

所以过程如下:

前端调用请求本地http服务器本地http服务器依次向PayPal服务器发出请求所以:

前端->localhttp->PayPal服务器->localhttp->前端

Frontend和http不是同源,所以Frontend请求本地http不关心cors

关于node.js - NodeJS 上的 React 可以 POST 到 Spring Boot REST API,但无法 PUT 到相同的 API - CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49878044/

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