被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP OK 状态

Posted

技术标签:

【中文标题】被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP OK 状态【英文标题】:Blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP OK status 【发布时间】:2020-07-30 21:29:40 【问题描述】:

我有本地应用程序。到目前为止我所尝试的

    已安装 CORS 扩展(帮助我从后端获取令牌而不被阻止)

    我必须将此令牌作为 X-API-Token 传递以调用我的下一个 API,但标题中出现错误。

    我试图传递给标题

axios.get( `/booking/`,  headers: 
        
        'X-API-Token': state.session.token, 
        'Access-Control-Allow-Origin':'*', 
        'Access-Control-Allow-Methods': 'GET', 
        'Access-Control-Allow-Headers': 'Origin, Content-Type, X-API-Token'
        
    )

也不行。我无权访问服务器端。有没有办法从前端处理它?或者至少目前没有被 localhost 屏蔽?

【问题讨论】:

【参考方案1】:

访问控制检查是浏览器的一项安全功能,因此请注意您在服务器中启用/禁用的内容。

这是一个由 Apache 提供的生产 express nodejs 应用程序。 请记住,浏览器正在缓存标头,因此您需要硬刷新和重新加载才能使其正常工作。

Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "GET,PUT,POST,DELETE,OPTIONS"
Header always set Access-Control-Allow-Headers "Content-Type,Authorization"

Header always set Access-Control-Request-Method "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Allow-Credentials "true"

【讨论】:

【参考方案2】:

这个答案解决了我的问题(Disable same origin policy in Chrome) 对于 Windows:

打开开始菜单

键入 windows+R 或打开“运行”

执行以下命令:

chrome.exe --user-data-dir="C://Chrome 开发会话" --disable-web-security

【讨论】:

以上是关于被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP OK 状态的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 7 CORS:被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”

被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”标头

来源已被 CORS 策略阻止 对预检请求的响应未通过访问控制检查

CORS 策略已阻止从源“null”访问 XMLHttpRequest:对预检请求的响应未通过访问控制 [重复]

domain.com 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态

如何解决这个“http://localhost:8080”已被 CORS 策略阻止:对预检请求的响应未通过 vueJS 中的访问控制?