【问题标题】:Cookie not set in request header when request is sent from React从 React 发送请求时,请求标头中未设置 Cookie
【发布时间】:2022-02-08 13:06:45
【问题描述】:

我的后端在 Django 中,而前端在 React 中。 我已经设置了 CROS 标头并添加了如下设置。 Django settings

对于发送请求,我使用的是fetch,并且我设置了credentials: 'include'。

我正在使用基于会话的身份验证,所以当我登录用户的会话时。然后从父组件(来自useEffect)向后端发送请求以获取作业。在这种情况下一切正常。以下是此特定请求的标头。它有COOKIE

Request header 1

当我从 react 的子组件发送请求时,标头中不存在 COOKIE。以下是此特定请求的标头。

Request header 2

我无法理解为什么会发生这种情况,两个请求标头的另一个区别是请求标头中 HTTP_SEC_FETCH_SITE 的值。 在HTTP_SEC_FETCH_SITE 的第一个请求值是same-site 而在第二个请求HTTP_SEC_FETCH_SITE 是cross-site。即使在两种情况下都通过http://localhost:3000 发送请求,为什么HTTP_SEC_FETCH_SITE 的值不同。

【问题讨论】:

    标签: reactjs django web cookies fetch


    【解决方案1】:

    HTTP_SEC_FETCH_SITE 的值对于这两个请求是不同的,因为第一个请求的 baseurl 设置为 http://localhost:8000/ 而第二个请求是 http://127.0.0.1:8000/.

    事件虽然都是本地服务器在同一个端口,但不知道为什么会发生这种情况。

    我将两个 baseurl 都更改为 http://localhost:8000/ 并且一切正常。两个请求中都设置了 Cookie。

    【讨论】:

      猜你喜欢
      • 2020-08-19
      • 1970-01-01
      • 2016-02-21
      • 2018-12-21
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 2021-05-29
      • 1970-01-01
      相关资源
      最近更新 更多