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

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

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

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

  3. 我试图传递给标题

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 屏蔽?

【问题讨论】:

    标签: http-headers axios cors same-origin-policy


    【解决方案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

      【讨论】:

        猜你喜欢
        • 2020-01-29
        • 2021-09-16
        • 2019-08-09
        • 2021-04-15
        • 2019-07-07
        • 2021-05-23
        • 2020-06-06
        • 1970-01-01
        • 2020-09-30
        相关资源
        最近更新 更多