JavaScript获取-未能对“响应”执行“json”:正文流已锁定

当请求状态大于400(我尝试了400423429个状态)时,fetch无法读取返回的json内容。浏览器控制台中将显示以下错误

未捕获(承诺中)TypeError:无法在上执行“json”
“响应”:正文流已锁定

我显示了返回的响应对象的内容,如下所示:

但几个月前我还可以用

我的问题如下:

  • 这仅仅是Chrome浏览器的行为还是fetch标准的改变
  • 有没有办法得到这些状态的身体内容

我的浏览器版本是Google Chrome 70.0.3538.102(正式版本) (64 位)

我也遇到过这个错误,但发现它与响应状态无关,真正的问题是您只能使用Response.json()一次,如果您多次使用它,就会发生错误

如下图所示:

fetch('http://localhost:3000/movies)。然后(响应=&gt{
控制台日志(响应);
if(response.ok){
console.log(response.json());//首先在console.log中使用它
return response.json();//然后再次使用它,就会发生错误
}

因此,解决方案是避免在then块中多次使用Response.json()

发表评论