cors策略问题

oipij1gg  于 2021-09-23  发布在  Java
关注(0)|答案(3)|浏览(288)

我制作了一个客户机-服务器应用程序。后端使用node、express和mongodb atlas。
我已经安装了cors,并将其用作中间件,如:

const cors = require('cors')

app.use(cors())

然后我将其部署到heroku,heroku返回一个端点;比如:https://express-server.herokuapp.com
我在客户端中使用了基于react的端点。
我使用axios向服务器发出请求,例如:

const response = await axios.post('https://express-server.herokuapp.com/users/login' ,{some data here})

这就是错误发生的地方。每次我发出请求时,控制台中都会弹出以下响应。

解决这个问题的办法是什么????

xytpbqjk

xytpbqjk1#

您必须在服务器中定义应接受来自哪个来源的请求
假设您的本地主机在端口3000上运行。请尝试以下代码

app.use(
    cors({
        origin: "http://localhost:3000", 
        credentials: true,
    })
);

注意:凭据true设置为仅传递http cookies

lzfw57am

lzfw57am2#

添加到main.ts

app.enableCors({
    origin: true,
    methods: 'GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS',
    credentials: true,
  });
2izufjch

2izufjch3#

您需要支持cors飞行前请求,以使用json数据执行post操作。请参见:为什么cors中没有针对标准内容类型(即处理http选项)的post请求的预飞行。
在其他路线之前,在您的express应用程序中执行类似的操作。

app.options('*', cors())

相关问题