我使用swr来获取用户数据。请求附有Cookie。
针对cors请求,回迁器配置如下:
const fetcher = async (url: string, params?: any) => {
const res = await fetch(url, fetchConfig)
return handleResponse(res)
}
fetchConfig
为:
{
credentials: 'include',
mode: 'cors'
}
第一个请求是用cookie正确发送的,但随后的请求是在不使用cookie的情况下发送的,这导致(401)请求失败。
我浏览了浏览器控制台的网络选项卡,发现:
- 第一个请求是"启动";通过上面的fetcher片段
- 随后的请求是";启动";通过CCD_ 2如下:
var fetcher = function (url) { return fetch(url).then(function (res) { return res.json(); }); };
请注意,它没有使用配置。有人知道为什么会发生这种情况,或者为什么除了第一次之外根本不使用配置的提取器吗?
事实证明,我实际上在全局swr配置中使用了swr。显然,配置还没有生效,所以使用了默认的fetcher。