我正在尝试使用 fetch api 取回一些数据,但是一旦我检索到它就无法将其映射到控制台。
fetch('http://jsonplaceholder.typicode.com/users', {
method: 'GET'
}).then(function(response) {
console.log(response)
response.forEach(i => console.log(i.name));
}).catch(function(err) {
console.log(`Error: ${err}` )
});
我得到的错误是
response.map 不是函数
所以我尝试解析响应(即 var data=JSON.parse),但它不起作用,出现错误
SyntaxError: Unexpected token o in JSON at position 1"
有趣的是,当对 XMLHttp 请求做同样的事情时,我需要解析它,所以我也很想知道为什么这两种检索数据的方法之间存在差异。
如果有人能指出我正确的方向,我将不胜感激。
原文由 matt-p 发布,翻译遵循 CC BY-SA 4.0 许可协议
Fetch API 在承诺中返回一个 响应流。响应流不是 JSON,因此尝试对其调用
JSON.parse
将失败。要正确解析 JSON 响应,您需要使用 response.json 函数。这将返回一个承诺,因此您可以继续链。