如何解决对MongoDB的访问控制-允许起源
我想与我的MongoDB建立连接。我在vercel中设置了标头(如guide)以允许Access-Control-Allow-Origin。但是我仍然收到错误消息:Access to fetch at 'https://radiototem-ae2iboqsb.vercel.app/' from origin 'https://radio-totem.vercel.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs,set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
我问,我是否正确设置了vercel.json文件?我是否需要更改服务器获取的js文件?
最诚挚的问候
vercel.json
{
"builds": [
{ "src": "index.js","use": "@vercel/node" }
],"version": 2,"env": {
"MONGODB_URI": "@my-mongodb-uri"
},"headers": [
{
"source": "/api/users.js","headers": [
{ "key": "Access-Control-Allow-Credentials","value": "true" },{ "key": "Access-Control-Allow-Origin","value": "*" },{ "key": "Access-Control-Allow-Methods","value": "GET,OPTIONS,PATCH,DELETE,POST,PUT" },{ "key": "Access-Control-Allow-Headers","value": "X-CSRF-Token,X-Requested-With,Accept,Accept-Version,Content-Length,Content-MD5,Content-Type,Date,X-Api-Version" }
]
}
]
}
cors标头
const allowCors = fn => async (req,res) => {
res.setHeader('Access-Control-Allow-Credentials',true)
res.setHeader('Access-Control-Allow-Origin','*')
// another common pattern
// res.setHeader('Access-Control-Allow-Origin',req.headers.origin);
res.setHeader('Access-Control-Allow-Methods','GET,PUT')
res.setHeader(
'Access-Control-Allow-Headers','X-CSRF-Token,X-Api-Version'
)
if (req.method === 'OPTIONS') {
res.status(200).end()
return
}
return await fn(req,res)
}
const handler = (req,res) => {
const d = new Date()
res.end(d.toString())
}
module.exports = allowCors(handler)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。