首页  >  文章  >  后端开发  >  为什么我的浏览器不保存来自 Go 后端的 Cookie,除非我指定 `credentials: \'include\'`?

为什么我的浏览器不保存来自 Go 后端的 Cookie,除非我指定 `credentials: \'include\'`?

Susan Sarandon
Susan Sarandon原创
2024-11-24 10:48:10731浏览

Why Doesn't My Browser Save Cookies from My Go Backend Unless I Specify `credentials:

浏览器无法保留 Cookie

在尝试构建具有 Go 后端的 React 应用程序时,使用 http.cookie 根据请求的响应设置 cookie 。尽管如此,浏览器仍然无法存储 cookie。 Chrome 和 Firefox 中都遇到过此问题。

经过仔细检查,我们发现 Fetch API 请求中缺少“credentials”属性,需要包含 cookie 的响应。通过将 'credentials: "include"' 合并到请求中,浏览器能够保存从响应中获取的 cookie。

fetch(`${url}/login`, {
                method: "POST",
                headers: {
                    "Content-Type": "application/json",
                },
                credentials: "include", // Added parameter
                body: JSON.stringify({
                    email: userDetails.email,
                    password: userDetails.password,
                }),
            }).then((response) => { ...

这一发现凸显了将 'credentials' 设置为“include”的重要性请求在响应中期待 cookie。缺少此属性会导致浏览器无法存储 cookie,从而导致上述问题。

以上是为什么我的浏览器不保存来自 Go 后端的 Cookie,除非我指定 `credentials: \'include\'`?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn