gpt4 book ai didi

javascript - If-Modified-Since 被 fetch API 忽略

转载 作者:行者123 更新时间:2023-12-03 07:14:00 30 4
gpt4 key购买 nike

我正在编写一个 react-native 应用程序,并且我正在从支持 If-Modified-Since 的 API 进行轮询。标题。

我的要求是:

const response = await fetch(
uri,
{
method: 'GET',
cache: 'no-store',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: `token ${token}`,
'If-Modified-Since': lastUpdatedAt.toUTCString(),
},
}
);

现在,问题是这个请求总是返回一个 response.status等于 200 ,而如果我使用 CURL 运行相同的请求:
curl -s -o dev/null -w "%{http_code}" $uri -H "If-Modified-Since: Mon, 27 Nov 2017 11:36:41 GMT"

它将正确地返回 304 .

我究竟做错了什么?我必须设置任何其他选项吗?

最佳答案

将缓存选项设置为“默认”并且 fetch 将发送 If-Modified-Since header - 无需单独定义 header 。请记住,If-Modified-Since header 用于浏览器级别的缓存。如果您没有在浏览器中缓存任何内容,则发送 header 以检查您是否可以使用缓存的数据是没有意义的(这就是 304 的含义 - 只需使用您已经缓存的数据)。
您可以在此处找到 fetch() 的所有可能配置:https://javascript.info/fetch-api

关于javascript - If-Modified-Since 被 fetch API 忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47510182/

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