原因:
- 在使用
fetch
获取 HTTP 响应后,它返回的Response
对象包含一个body
属性,它是一个可读取的流但只能被读取一次。一旦你读取了响应体的内容,它就会被消耗掉。 - 当使用
await res.json()
解析响应体为 JSON 数据时,json()
方法实际上也会读取body
流的内容,然后将其解析为 JavaScript 对象。一旦这个操作完成,body即被消耗。
解决:
如果需要多次访问响应体的内容,应该在第一次读取后将数据保存在变量中,以避免多次读取响应体。从 data
变量中获取数据,而不必再次读取 body
流。