Express 中间件被 CORS 策略阻止(预检 OPTIONS 请求遇到授权错误)
Posted
技术标签:
【中文标题】Express 中间件被 CORS 策略阻止(预检 OPTIONS 请求遇到授权错误)【英文标题】:Express middleware blocked by CORS policy (hitting authorization error for preflight OPTIONS request) 【发布时间】:2020-11-25 21:21:01 【问题描述】:当这个块不存在时,我的 API 可以正常工作。
当我添加这个块时,我得到一个 CORS 错误:
对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。
我错过了什么?
app.use((req, res, next) =>
try
if (secret !== config.secret)
throw new Error('Not Authorized')
else
next()
catch (err)
next(err)
);
【问题讨论】:
消除了 CORS 错误。谢谢! 【参考方案1】:如果请求的方法是OPTIONS,请确保不抛出错误:
if (req.method !== "OPTIONS" && secret !== config.secret)
throw ...
见https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request。
【讨论】:
以上是关于Express 中间件被 CORS 策略阻止(预检 OPTIONS 请求遇到授权错误)的主要内容,如果未能解决你的问题,请参考以下文章
角 POST 请求被 CORS 策略阻止:对预检请求的响应未通过访问控制检查
被 CORS 策略阻止:对预检的响应...没有 HTTP ok 状态。标头没有解决问题
被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP OK 状态
Laravel 7 CORS:被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”
被 CORS 策略阻止:预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段授权
被 CORS 策略阻止:预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段内容类型 [重复]