如果存在多个,Axios仅返回最后一个“set-cookie

monwx1rj  于 2023-02-15  发布在  iOS
关注(0)|答案(1)|浏览(143)

我在我的react-native应用中使用axios来调用rest API,作为对api调用的响应,服务器返回多个“set-cookie”头,但是axios只返回最后一个。
在Postman中尝试了相同的API,它返回了4个“set-cookie”头,在axios中它总是最后一个
我已经做了axios.defaults.withCredentials = true;
我也尝试过在请求配置中包含这个,就像这样...

axios.request( {
...otherConfig,
withCredentials: true
})

如果我这么做...

axios.request({
            url: 'https://myurl.mydomain',
            method: 'post',
            headers: { 'Content-Type': 'application/json' },
            data: JSON.stringify(body),
            withCredentials: true,
        }).then(response => {
            console.log(response.headers['set-cookie'])
        });

我希望上面的console.log()写类似于

set-cookie: ["lang=AR; expires=somedate; path=/",
            ".ASPXAUTH=authtoken-value; expires=somedate; path=/",
            "OtherCookie1=111; expires=Tue, 21-May-2019 19:59:59 GMT; path=/"]
            "OtherCookie2=222; expires=Tue, 21-May-2019 19:59:59 GMT; path=/"]
bxfogqkk

bxfogqkk1#

我在NodeJS v18中也遇到过同样的问题,但我没有找到解决方案。
使用原生fetch API似乎可以正常工作:

const response = await fetch(your_url);
  const cookie = console.log(response.headers.get('set-cookie'));

在NodeJS v18中,我得到了一个单独的字符串,它是不同字符串的串联,但我也有一个警告消息,因为获取API是一个实验特性...
在线阅读,似乎在浏览器可能会返回给你一个数组的不同的“设置Cookie”代替。希望它有助于其他p

相关问题