我正在撰写反应原生的应用,并且我正在从支持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
。
我做错了什么?我是否必须设置任何其他选项?
答案 0 :(得分:0)
我有一个类似的问题。似乎无法检查df.groupby('CRIME')['ZIP CODE'].agg(pd.Series.mode)
状态。看这里:Recognize HTTP 304 in service worker / fetch()
答案 1 :(得分:0)
将缓存选项设置为“默认”,fetch 将发送 If-Modified-Since 标头 - 无需单独定义标头。请记住,If-Modified-Since 标头用于浏览器级缓存。如果你不缓存任何东西,发送标头来检查你是否可以使用缓存的数据是没有意义的(这就是 304 的意思 - 只需使用你已经缓存的数据)。
您可以在此处找到 fetch() 的所有可能配置:https://javascript.info/fetch-api