【问题标题】:Response to preflight request doesn't pass access control check in NodeJS对预检请求的响应未通过 NodeJS 中的访问控制检查
【发布时间】:2017-04-07 01:57:54
【问题描述】:

即使我在 NodeJS/ExpressJS 中添加了以下代码,我也无法说服为什么会遇到以下错误。

XMLHttpRequest 无法加载 http://localhost:9000/polymer/105724/apply。 对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:8080” 访问。

res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.setHeader("Access-Control-Allow-Headers", "X-Requested-With, Content-Type");

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

    您还需要允许OPTIONS 方法。浏览器在实际调用之前发送OPTIONS 调用,因此如果不允许OPTIONS,则不会进行下一次调用。

    res.setHeader('Access-Control-Allow-Methods', 'OPTIONS,GET,PUT,POST,DELETE');
    

    【讨论】:

      【解决方案2】:

      允许 OPTIONS 并回复处理 CORS HTTP 标头到浏览器并等待请求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-05
        • 2017-03-25
        • 2019-09-09
        相关资源
        最近更新 更多