反应本地获取Cookie

您所在的位置:网站首页 cookies获取 反应本地获取Cookie

反应本地获取Cookie

2023-03-03 10:25| 来源: 网络整理| 查看: 265

我已经使用fetch()登录到服务器,我想知道如何获取COOKIE。

我知道我可以使用“ document.COOKIE ”在Web浏览器开发中获取COOKIE,但是在响应本机开发中如何?非常感谢你。

1> jneuendorf..:

我只是遇到了同样的问题。我的第一种方法是从响应标题中手动获取COOKIE。自从Headers.prototype.getAll删除以来,这变得更加困难(请参阅此问题)。详细信息在下面进一步显示。

可能不需要获取和解析COOKIE

首先,我要提到的是,下面所有的COOKIE解析都是不必要的,因为React Nativefetch上的实现会自动发送COOKIE(如果密钥设置正确)。因此,会话保持不变(就像在浏览器中一样),并且进一步的es可以正常工作。不幸的是,关于网络的React Native文档没有明确告诉您它将立即可用。它只说:“ React Native提供了Fetch API来满足您的网络需求。”credentialsfetch

第一种方法

因此,我编写了一个辅助函数:

// 'headers' is iterable const get_set_COOKIEs = function(headers) { const set_COOKIEs = [] for (const [name, value] of headers) { if (name === "set-COOKIE") { set_COOKIEs.push(value) } } return set_COOKIEs } fetch(url, { method: "POST", credentials: "same-origin", // or 'include' depending on CORS // ... }) .then(respOnse=> { const set_COOKIEs = get_set_COOKIEs(response.headers) })

要将COOKIE字符串解析为对象,我使用了set-COOKIE-parser。这样我想像手动发送回饼干

import SetCOOKIEParser from "set-COOKIE-parser" const COOKIEs_to_send = set_COOKIEs .map(COOKIE => { const parsed_COOKIE = SetCOOKIEParser.parse(COOKIE) return `${COOKIE.name}=${COOKIE.value}` }) .join('; ') fetch(url, { method: "POST", credentials: "same-origin", // or 'include' depending on CORS headers: { COOKIE: COOKIEs_to_send, // ... }, // ... })


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3