【问题标题】:Fetch API doesn't work with cookies in react at allFetch API 根本不适用于反应中的 cookie
【发布时间】:2021-05-29 22:45:27
【问题描述】:

所以我真的不知道这是否是我刚刚遇到的问题,但我在其他一些问题上阅读了很多关于它的内容,但由于这些问题的答案对我没有帮助,我现在必须制作自己的 StackOverflow发布._。

我会尽量保持简短。


所以我试图向我的后端发出一个简单的获取请求,但包括来自浏览器的当前 cookie。它看起来像这样:

var rsp = await fetch("/api/basicRegistrationInfos", {
  method: "POST",
  credentials: "same-origin",
  headers: new Headers({ Cookie: document.cookie }),
});

这不是我的原始代码。
原始代码只包含var rsp = await fetch("/api/basicRegistrationInfos");
我修改了它,因为 cookie 标头根本不起作用。
我尝试设置 credentials 选项的每个值,但这并没有发送任何 cookie。
然后我尝试将GET 更改为POST 请求。都没有用。
我尝试的最后一件事是自己设置 cookie 标头。这让我最惊讶:它只是在发送请求之前删除了我的 cookie 标头。它实际上只是发生在 cookie 标头上。我用'cookies'(cookie 和一个额外的s)尝试了它,它只是设置了标题。


还有几件事:
我可以执行,可能是我无法访问 cookie,因为我用 document.cookie 尝试过它并取回了正确的 cookie。
另外,我的设置(前端-后端)如下所示:

浏览器向 /home 发出 GET 请求 --> /home 通过 express 后端,因为它不包含 /api/* 它请求一个站点,我可以通过以下方式加载我的 react 应用程序的 prod 版本express.sendFile()

我真的不认为我的后端与它有关,但我认为最好也发布这个。

我希望有人可以帮助我解决这个问题。我在这个 cookie 问题上苦苦挣扎了 3 天,这让我发疯。我似乎也没有找到有同样问题的人,所以我想我是第一个遇到它的人。

无论如何...
提前感谢任何人可以给我的任何帮助或建议,祝你有美好的一天^-^

1.编辑:
还尝试了node-fetch package,它似乎也删除了cookie头

2.编辑:
我现在用 chrome 尝试了它,因为我正在用 firefox 测试它,然后看看这个:它有效。我会尝试找出为什么它在 chrome 中有效,但在 Firefox 中无效,如果我能解决这个问题,我会在这里写下来。

【问题讨论】:

  • 设置credentials: 'include'时会发生什么?
  • 什么都没有。 Cookie 也没有设置 ._.
  • 所以请求通过了,但没有Cookie 标头?控制台中有任何警告吗?
  • 不,除了我从后端 bcs 获得的错误代码外,没有 cookie 可用于身份验证...

标签: javascript reactjs cookies fetch fetch-api


【解决方案1】:

由于浏览器插件的原因,它似乎无法正常工作。在禁用附加组件模式下启动 firefox 为我解决了这个问题(可以在右上角的汉堡菜单下找到 -> 帮助 -> 在禁用附加组件的情况下重新启动 firefox)

【讨论】:

    猜你喜欢
    • 2020-07-31
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 2021-08-28
    • 2022-08-18
    • 2017-09-21
    • 2019-02-13
    • 2019-08-03
    相关资源
    最近更新 更多