某些 chrome 版本中没有“Access-Control-Allow-Origin”标头
Posted
技术标签:
【中文标题】某些 chrome 版本中没有“Access-Control-Allow-Origin”标头【英文标题】:No 'Access-Control-Allow-Origin' header in some chrome version 【发布时间】:2021-07-13 14:34:35 【问题描述】:我正在尝试通过我的客户端将一些图像上传到 cloudinary,它在 localhost 和 chrome 版本 87 上运行良好,但在 chrome v89 中我得到 No '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
【问题讨论】:
【参考方案1】:您可能需要处理CORS preflight requests,您的浏览器在 POST 请求之前将其显示为 OPTION 请求。
将此行添加到您的代码中。
router.options('/upload', cors())
【讨论】:
以上是关于某些 chrome 版本中没有“Access-Control-Allow-Origin”标头的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Chrome v76 中隐藏“Chrome 正在由自动化软件控制”信息栏
PhoneGap/Cordova 以及最新版本的 Google Chrome 中没有“Access-Control-Allow-Origin”