javascript - Fetch API 根本不适用于反应中的 cookie
问题描述
所以我真的不知道这是否是我刚刚遇到的问题,但我在其他一些问题上阅读了很多关于它的内容,但由于这些问题的答案对我没有帮助,我现在必须制作自己的 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
并拿回了正确的饼干。
此外,我的设置(前端 - 后端)如下所示:
/home
浏览器向-->发出 GET 请求,/home
通过 express 后端,因为它不包括/api/*
它请求一个站点,我可以加载我的 react 应用程序的 prod 版本,我express.sendFile()
真的不认为我的后端有事可做有了它,但我认为最好也发布这个。
我希望有人可以帮助我解决这个问题。我在这个 cookie 问题上苦苦挣扎了 3 天,这让我发疯。我似乎也没有找到有同样问题的人,所以我想我是第一个遇到它的人。
无论如何...
提前感谢任何人可以给我的任何帮助或建议,祝您有美好的一天^-^
1. 编辑:
也用node-fetch 包尝试过,它似乎也删除了 cookie 头
2. 编辑:
我现在用 chrome 尝试了它,因为我正在用 Firefox 测试这个东西,看看这个:它有效。我将尝试找出为什么它在 chrome 中有效但在 Firefox 中无效,如果我能解决这个问题,我会在这里写下来。
解决方案
由于浏览器插件,它似乎无法正常工作。在禁用附加组件模式下启动 firefox 为我解决了这个问题(可以在右上角的汉堡菜单下找到 -> 帮助 -> 在禁用附加组件的情况下重新启动 firefox)
推荐阅读
- video - 如何在不使用 admob 的情况下在我的应用中显示我自己的奖励视频
- .net-core - Dotnet 核心发布站点无法在 IIS 10 上运行
- git - 如果它也是第一个,如何撤消最后一个 git commit?
- reactjs - 使用 reactjs 中的 css 模块从节点模块导入 css 文件
- java - 通过 JPA Spring boot 导入 Excel 文件
- java - 在 CDI 装饰器之间共享数据
- wpf - 如何在 cefsharp WPF 项目中加载扩展?
- javascript - 如何在 OpenCV.js 中获取轮廓角点的坐标?
- flutter - 颤振类型'列表
>' 不是类型“列表”的子类型 ' - java - 使用邮递员将 Json 发送到 springboot