如何解决某些 chrome 版本中没有“Access-Control-Allow-Origin”标头
我正在尝试通过我的客户端将一些图像上传到 cloudinary,它在 localhost 和 chrome 版本 87 上工作正常,但在 chrome v89 中我没有收到“Access-Control-Allow-Origin”标题错误,任何想法为什么会这样?
这是我的服务器路由:
const uploader = require('../config/cloudinary.config')
router.post('/upload',uploader.single("imageUrl"),(req,res) => {
res.setHeader('Access-Control-Allow-Origin','client domain');
if (!req.file) {
res.status(500).json({ code: 500,message: 'Error loading the file' })
return;
}
res.json({ secure_url: req.file.path })
})
这是我的 cors 配置:
const cors = require('cors')
const whitelist = [process.env.DOMAIN]
const corsOptions = {
origin: (origin,cb) => {
const originIsWhitelisted = whitelist.includes(origin)
cb(null,originIsWhitelisted)
},credentials: true
}
解决方法
您可能需要处理 CORS preflight requests,您的浏览器在 POST 请求之前将其显示为 OPTION 请求。
将此行添加到您的代码中。
router.options('/upload',cors())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。