RN 0.56.0之后,React Native Cookie的行为有所不同

时间:2019-01-25 23:09:29

标签: react-native cookies

在IOS中对我有用的是此功能,我很挣扎,因为react-native-cookies曾经从响应中获取所有cookie并由响应处理,但是在RN> 0.56.0之后停止工作,所以我试图弄清楚如何从获取响应中获取那些信息,这对于IOS来说工作正常,但是Android不能从标头中获取整个cookie,这可能是由于服务器配置引起的,但这是我的获取调用,如果有人愿意的话要进行尝试,这可以在IOS Fetch Documentation

中使用
fetchJsonPOSTHeaders(url){
    return new Promise(function (resolve, reject) {
        fetch(url, {
            method: "POST",
            headers: {
                'Accept': '(if you have )',
                'Content-Type': 'application/json',
                'Connection': 'keep-alive',
                'Accept-Language': 'en;q=1',
                'Accept-Encoding': 'application/json',
                'Pragma': 'no-cache',
                'Host': HOST_NAME,
                'User-Agent': DeviceAgent
            },
        }).then(function(response) {
            response.status     //=> number 100–599
            response.statusText //=> String
            response.headers    //=> Headers
            response.url        //=> String
            response._bodyInit // => The body

            console.log('Android headers - ', response.headers);
            var cookiesMap = JSON.stringify(response.headers.map);
            var cookies = [];
            JSON.parse(cookiesMap , (key, value) => {
                //looking for cookies
                if (key == 'set-cookie') {
                    cookies = value;
                }
            });
            console.log('Cookies list - ', cookies);
            resolve(cookies);
        }, function(error) {
            error.message //=> String
            console.log('cookies are not available');
            reject(error.message);
        })
    });
  }

返回cookie后,您可以获取一些帮助来解析使用'set-cookie-parser'的cookie,然后使用react-native-cookies来实际存储它们。

此问题已部分解决,因为Android仍未在Headers响应中检索整个cookielist。

0 个答案:

没有答案