【问题标题】:how to allow cors for specific domain on express如何在 express 上允许特定域的 cors
【发布时间】:2018-02-22 04:48:01
【问题描述】:

我试图在通过 ajax 从本地主机登录后发送一个 cookie 到托管在其他地方的服务器。为了解决与 cookie 相关的错误,我在我的 axios 中使用:

var instance = axios.create({ 
   withCredentials: true
});

在 expressjs 中我有这个:

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

所以,我现在收到这个错误

无法加载https://foo.herokuapp.com/login:对预检请求的响应未通过访问控制检查:响应中的“Access-Control-Allow-Origin”标头的值不能是通配符“*”,当请求的凭据模式是“包含”。因此,Origin 'http://localhost:8080' 不允许访问。 XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。

我如何告诉 express 将我的域列入白名单,或者我如何只发回 cookie 以便我可以保持登录状态?

要添加更多信息,当我向 expressjs 发出帖子(登录)请求时,它会返回一个 cookie,现在我的浏览器不会自己发送 cookie,这就是我使用withCredentials的原因

【问题讨论】:

    标签: javascript node.js express cookies axios


    【解决方案1】:

    您将* 替换为原点(在您的示例中为http://localhost:8080)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-15
      • 2019-10-03
      • 2020-07-02
      • 2020-09-07
      • 2020-11-30
      • 2022-01-14
      • 2018-08-17
      相关资源
      最近更新 更多