我有一个URL白色名单
我在使用GET请求时遇到了麻烦,但是使用POST时它可以工作。
对于POST,一切正常。
对于GET,我举了一个来自Express网站的例子,它不起作用。Cors允许来自任何域的GET请求。
const allowedList =["http://localhost:3000", "http://localhost:3001"]
const corsOptions = {
origin: function (origin, callback) {
if (allowedList.indexOf(origin) !== -1) {
callback(null, true)
} else {
callback(new Error('Not allowed by CORS'))
}
}
}
const corsOptionsGet = function (req, callback) {
let corsOptions;
if (allowedList.indexOf(req.header('Origin')) !== -1) {
corsOptions = { origin: true }
} else {
corsOptions = { origin: false }
}
callback(null, corsOptions)
}
router.post("/add-item", cors(corsOptions), addItem);
router.get("/get-item", cors(corsOptionsGet), getItem);
2条答案
按热度按时间utugiqy61#
您是如何调用服务器的?如果您使用的是
Postman
或curl
之类的工具,则不会默认设置Origin标头,您需要手动将其添加到请求标头中。tv6aics12#
我真的不明白你的allowedList不在函数中,那么你是如何设置cors设置的呢?