- 此问题在此处已有答案**:
(13个答案)
2天前关闭。
我刚接触node需要帮助。
我得到:第一个月
我的Angular 应用程序正在从http://localhost:4200
启动
我正在向http://localhost:3000/api/auth/signin
发出一个api请求(在postman上有效)
但我收到了CORS错误。
在我的节点server.js中,我配置了以下内容:
app.use(function (req, res, next) {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.setHeader('Access-Control-Allow-Methods', "GET, POST, PATCH, DELETE, OPTIONS");
next();
});
我可以使用postman发布数据,以便:localhost:3000/api/auth/signin
2条答案
按热度按时间sqxo8psd1#
这是因为浏览器会发送一个叫做“预检”的请求,而 Postman 不会。所以,您的服务器必须首先响应这些预检请求,以便浏览器继续处理原始请求。
你的代码只会调用
next()
,然后进入下一个中间件,但是这个中间件之后会做什么呢?你应该立即发送OPTIONS
请求。或者,您可以使用cors包快速添加cors逻辑:
m528fe3b2#
CORS
代表跨源资源共享。它允许服务器指示浏览器应该允许加载资源的任何源(域、方案或端口)。要在节点js中启用cors,请键入
npm i cors OR yarn add cors
用途:-
常见J
ES6模块
cors
中间件允许您指定允许的来源、方法和头,并且它会自动向响应添加必要的Access-Control-Allow-*
头。cors doc