为了账号安全,请及时绑定邮箱和手机立即绑定

来自 Github API 的奇怪响应(条件请求)

来自 Github API 的奇怪响应(条件请求)

慕容森 2023-01-06 09:46:26

所以我正在尝试从 Github API 检索 React 应用程序的回购数据。由于 API 的速率限制,我正在尝试使用条件请求来检查自上次请求以来数据是否已被修改,使用If-Modified-Since标头。


到目前为止,这是我的测试代码:


const date = new Date().toUTCString();



fetch('https://api.github.com/users/joshlucpoll/repos', {

  headers: {'If-Modified-Since': date}

  })

  .then((res) => {

    let headers = res.headers;

    console.log(headers)

    if (headers.get('status') === "304 Not Modified") {

      console.log("Not modified")

    }

    else {

      console.log("modified")

    }

  });

每次运行此代码时,我都会得到一个200 OK状态,而不是304 Not Modified预期的状态。资源在运行代码时无法更新,但是,它始终输出“未修改”...


我不明白为什么这不起作用,我们将不胜感激!


查看完整描述

1 回答

?
哈士奇WWW

TA贡献1547条经验 获得超6个赞

这里的问题是您处理状态的方式。


这是关于如何实施的一些设置:https ://codesandbox.io/s/wizardly-banzai-pi8to?file=/src/index.js


const date = new Date().toUTCString();


fetch("https://api.github.com/users/joshlucpoll/repos", {

  headers: { "If-Modified-Since": date }

}).then((res) => {

  console.log(res.status);

});

可以在响应本身内部检索状态,它不嵌套在标头中。


你会看到的值为res.status304,res.headers.get("status")会返回null


查看完整回答
反对 回复 2023-01-06
  • 1 回答
  • 0 关注
  • 10 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信