请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Fetch Error:Failed to execute 'json' on 'Response'

调用<AutoComplete />没有在storybook(当然这个没什么影响)
fetch的时候, 报错为

但是我在代码中,打断点之后,fetch之后是可以获得response的,状态也是ok,200。

但就是无法执行json(),之后我只能在stack overflow上找到这个回答javascript fetch - Failed to execute ‘json’ on ‘Response’: body stream is locked。并且里面的解决方法对于我的问题都是没有用的。
想问下怎么解决,麻烦啦!

  const fetchFetch = (query: string) => {
    fetch(`https://api.github.com/search/users?q=${query}`)
      .then(
        res => {
          console.log("fetch---", res.json())
          return res.json()
        }
      ).then(
        value => {
          console.log(value)
        }
      )
  }

正在回答

3回答

在 console.log(res.json()); 之前 clone 啊,你这样等于又调用了 res.json() 以后又调用它所以报错了啊。这样的代码亲测可用

const clone = res.clone();
console.log(res.json()); 
return clone.json()


0 回复 有任何疑惑可以回复我~
  • 提问者 Nnn_Lillian #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-09-09 20:13:25
提问者 Nnn_Lillian 2020-09-07 10:19:19

https://img1.sycdn.imooc.com/szimg/5f55988f0925e85e21120260.jpg

老师,你看这个,他是无法执行 clone()的

0 回复 有任何疑惑可以回复我~
张轩 2020-09-06 21:20:45

同学你好欧  response 对象不能多次调用 json() 方法,你这里调用了两次,就会出现这个错误。你可以把它 clone 一份,再调用就没事了。

let clone = res.clone();


0 回复 有任何疑惑可以回复我~
  • 提问者 Nnn_Lillian #1
    老师,我实验过这个方法了,他会返回无法 clone()
    回复 有任何疑惑可以回复我~ 2020-09-07 00:27:04
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号