Cookie 未添加到请求中 header

Cookie not added into request header

想再问一个CORS cookie的问题,我花了好长时间没解决。 情况是这样的。

我在 nodejs(http://localhost:5000), and a React Frontend app(http://localhost:3000) 中有一个后端 api。 Backend端的Cors设置是这样的

private initializeCors(){
    this.app.use(function(req, res, next) {
      res.header("Access-Control-Allow-Origin", "http://localhost:3000");
      res.header("Access-Control-Allow-Headers", "Content-Type, Accept");
      res.header("Access-Control-Allow-Credentials", "true");
      next();
    });
  }

我在使用 username/password 登录时在 Fetch Api 中设置了 { credentials: "include" }。 Set-Cookie 已响应设置,我可以看到它已保存在浏览器中。 Cookie 的格式为 "Authorize=TOKEN;HttpOnly;Max-Age=3600;" Cookie in browser

然后当路由到另一个 url 并且它无法从后端检索数据并出现 401 异常。 这是序列调用的代码。

const credentialsInclude : "include" | "omit" | "same-origin" | undefined = "include";
function getAllPayments() {
    const requestOptions = {
        method: 'GET',
        credentials: credentialsInclude
    };
    return fetch(apiUrls.GET_ALL_PAYMENTS, requestOptions).then(handleResponse);    
}

我可以看到未添加到 header 中的 cookie。 No cookie in header

我已按照 的最佳答案进行操作,但无法正常工作。

有什么建议吗?谢谢。

我刚刚弄明白了。该问题不是由 CORS 设置引起的。这是Cookie本身造成的。 对于我的情况,我需要将 Path=/; 添加到 Set-Cookie 中以响应 headers。这样就可以在成功登录后将来自响应的cookie添加到顺序请求中。