If-Modified-由于忽略了fetch API

时间:2017-11-27 11:43:12

标签: javascript 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

我做错了什么?我是否必须设置任何其他选项?

2 个答案:

答案 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