我刚开始使用react-native和javascript中的fetch api。我用后端验证我的应用程序,在我的ios模拟器中刷新了几次后,应用程序检查它是否在初始加载时通过了后端的验证,令我惊讶的是,它是!这就回避了一个问题:在react-native和fetch应用程序接口中,什么是持久的?
谢谢!
发布于 2017-01-13 23:17:24
React Native上的fetch是在本地级API之上实现的,与whatwg specification和众所周知的github polyfill略有不同。这意味着当实际的HTTP请求发出时,它是由iOS或OkHttp3上的本地网络堆栈发出的,并且在这两种情况下,处理和存储cookies的都是底层的ObjC或OkHttp3代码,而不是JS代码。
在2015年11月的this commit之前,cookies根本不能在安卓上正确持久化,但从RN0.16开始,无论你的fetch调用中的cookies设置是什么,这两个平台都支持cookies。因此,会话cookie和类似的东西开箱即用,如果您不希望持久化任何东西,这可能会让人感到不安。如果您需要从JS操作cookie,请看一下react-native-cookies,它与底层cookie存储交互。
发布于 2019-07-19 10:15:09
我遇到了同样的问题,最后不得不使用AsyncStorage来保存令牌和cookie,还使用了react-native-cookie来清除所有cookie。例如: CookieManager.cearAll()
https://stackoverflow.com/questions/41132167
复制相似问题