伙计们!我正在通过构建任务管理器应用程序来练习 MEAN 堆栈开发,并且目前遇到了 CORS 问题。我似乎已经在整个互联网上尝试了不同的解决方案,然后从一个问题转向了另一个问题。目前停留在这个:
Access to XMLHttpRequest at 'http://localhost:3000//lists/602676b56197c004f12bbeaf/tasks/602676be6197c004f12bbeb0' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
我已经在我的代码中说明了这一点(但是它并没有解决问题:
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Methods", "GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
我也试过使用浏览器扩展,通过终端禁用网络安全,没有解决问题,我记得,用代理来做对我以前的项目没有帮助...
以防万一 - 这是我的一个请求的样子:
app.patch('/lists/:listId/tasks/:taskId', (req, res) => {
Task.findOneAndUpdate({
_id: req.params.taskId,
_listId: req.params.listId
}, {
$set: req.body
}
).then(() => {
res.sendStatus(200);
})
});
我做错了什么吗?还有什么我应该注意和尝试的? 处理后端对我来说很难,因为这是我第一次这样做......
无论如何,我希望有人能在这个问题上启发我,我真的很感激!
干杯!
答案 0 :(得分:0)
不要自己实现 cors 功能。使用库
npm install --save cors
....
var cors = require('cors')
var app = express()
app.use(cors())
答案 1 :(得分:0)
试试 cors 包
安装 npm
npm i cors --save
然后
const express = require('express');
const bodyparser = require('body-parser');
const cors = require('cors');
app.use(cors());
....
这将使 cors 无处不在,希望它有所帮助,并确保 app.use(cors()) 高于一切。