【问题标题】:Does Chrome changes Access-Control-Allow-Origin?Chrome 会更改 Access-Control-Allow-Origin 吗?
【发布时间】:2019-10-25 11:25:46
【问题描述】:

使用 Chrome 浏览我的 nodejs 网站。我在 Chrome 开发人员工具中看到的 Access-Control-Allow-Origin 值与我在 nodejs 中定义的值不同

在我的 nodejs 中

res.setHeader('Access-Control-Allow-Origin', "siteA");

当我查看 Network -> Response Headers 下的 Chrome 开发人员工具时,我看到了

Access-Control-Allow-Origin: siteB

用 Edge 试过 - 工作正常

我使用应用程序清理站点数据->清理存储 - 没有帮助

我在chrome中得到的错误代码是

Access to XMLHttpRequest at 'XXXXX' from origin 'siteA' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value 'siteB' that is not equal to the supplied origin.

【问题讨论】:

    标签: node.js google-chrome cross-domain


    【解决方案1】:

    你能把res.setHeader('Access-Control-Allow-Origin', "siteA");改成res.setHeader('Access-Control-Allow-Origin', "*");

     app.use(function(req, res, next) {
      res.header("Access-Control-Allow-Origin", "*");
      res.header("Access-Control-Allow-Methods","POST","GET")
      res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type,authorization,Accept");
    
      res.header('Access-Control-Allow-Credentials', 'true'); 
      next();
    });  
    

    请将此代码复制并粘贴到您的服务器 index.js 文件中。我认为这应该可以。

    【讨论】:

    • 试过 res.setHeader('Access-Control-Allow-Origin', "*");没有帮助,我确实有你提到的其他 3 行
    • 我编辑了代码。你能不能试试,让我知道这是否有效。
    • 我有这个代码没有改变,还添加了 res.setHeader('Vary', 'Origin, Access-Control-Request-Headers, Access-Control-Request-Method'); - 没有帮助
    • 好吧,我用这个解决了 cors 错误。@user1726407 还有另一种方法可以通过使用插件来解决 cors 错误。npmjs.com/package/cors 检查这个插件
    猜你喜欢
    • 2013-09-27
    • 1970-01-01
    • 2012-03-22
    • 2023-03-16
    • 2011-10-26
    • 2014-11-28
    • 2017-06-15
    • 2014-01-28
    相关资源
    最近更新 更多