gpt4 book ai didi

react-native - 如何使用 fetch() 和 React Native 处理 set-cookie header

转载 作者:行者123 更新时间:2023-12-04 21:04:35 25 4
gpt4 key购买 nike

我有基于 cookie 的身份验证和 session 管理的 Spring Boot 应用程序。
对于第一个请求,我收到 cookie 名称和 session 哈希作为值。

另一方面,我有用 Expo 包装的 React Native 应用程序。
对于有史以来的第一个请求,我可以从 fetch() 请求中获取这个“set-cookie” header 。然后,即使在重新启动应用程序后,我也无法获得此 header 。

我用 React Native Debugger 和这行代码调试了它:

GLOBAL.XMLHttpRequest = GLOBAL.originalXMLHttpRequest || GLOBAL.XMLHttpRequest;

我可以在调试器的网络选项卡上看到我的 XHR 请求。清除所有 cookie 后,每次我在请求的预览中正确接收 set-cookie header 时。但是我用 fetch(...).then(response => response.headers) 看不到它。

为什么?这是我的 cookies 持久化的东西吗?如何在没有插件/库的情况下处理 cookie 数据并将其保存到 AsyncStorage?

最佳答案

解决方案:
如果您有 网络检查在 React Native Debugger 中启用,将其关闭。右键单击 Redux 区域的任意位置,然后按 Disable Network Inspect .
enter image description here
笔记:
我知道这是多年以后,但我发现罪魁祸首是 React Native Debugger。如果您启用了网络检查,它会删除 set-cookie头离开,给你留下一个未定义的。
请注意,我使用的是 Axios 版本 0.20.0 并设置了 withCredentials在我的 POST 配置中,在 React Native 0.63.3 和 React Native Debugger 0.11.5 上设置为 true。我知道这不是 fetch,但这很可能是多年前让您感到不适的原因。您的 set-cookie在您开始使用 RND 进行检查的那一刻就消失了。
现在的解决方案是禁用网络检查,您将获得 set-cookie再次。
2019年React Native Debugger有一个bug open,作者提到这是一个不容易克服的限制。
如果您有兴趣,请在此处阅读更多信息:
https://github.com/jhen0409/react-native-debugger/issues/340#issuecomment-514395195

关于react-native - 如何使用 fetch() 和 React Native 处理 set-cookie header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49696226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com