当前位置: 首页 > 面试题库 >

使用Fetch API访问JSON

牧飞鹏
2023-03-14
问题内容

我正在尝试使用访存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请求执行相同操作时,需要解析它,因此我也想知道为什么这两种检索数据方法之间的区别。

如果有人能指出正确的方向,我将不胜感激。


问题答案:

Fetch API 在promise中返回响应流。响应流不是JSON,因此尝试对其进行调用JSON.parse将失败。要正确解析JSON响应,您需要使用response.json函数。这将返回一个承诺,因此您可以继续进行连锁。

fetch('http://jsonplaceholder.typicode.com/users', { 
  method: 'GET'
})
.then(function(response) { return response.json(); })
.then(function(json) {
  // use the json
});


 类似资料:
  • 我试图使用FetchAPI从一个输入中发布多个文件,但表单数据在附加后仍然为空 我看了看这里,这里,这里,这里和这里的答案,并尝试了他们都没有用 我使用Laravel框架作为后端,这是我的刀片视图文件 控制台记录一个空表单数据对象 这是后端的代码 在其中我得到一个空数组 真的不知道为什么这不起作用!你知道我做错了什么吗?

  • 问题内容: 我正在寻找一种在Java App(使用JDBC)中打开Access MDB文件的方法。 快速的Google搜索建议我为此需要JDBC-ODBC Bridge。 这是否意味着我需要配置要在其上运行应用程序的每个系统,以便为要打开的MDB提供ODBC DSN? 还有一个问题(因为我以前从未使用过ODBC):通信是通过某种套接字(以客户机/服务器方式)还是通过方法/函数调用(例如嵌入Derb

  • 问题内容: 我正在使用Access,并尝试复制在MSDN上发现的某些语法。不幸的是,Access语法中的FROM语句似乎有问题。我不知道为什么。 问题答案: MS Access中枢转的语法与sql server不同。您必须使用该功能来旋转数据。 语法将类似于以下内容:

  • 我正在尝试使用onelogin php toolkit for SAML访问不同域上的ADFS IDP。ADFS只显示一个包含以下内容的屏幕 错误详细信息 活动ID:00000000-0000-0000-f980-0080000400cd 错误时间:星期四,24 Aug2017 13:48:15GMT Cookie:启用 用户代理字符串:Mozilla/5.0(Windows NT 10.0; W

  • 硒的新手,这是我的示例项目。 我无法访问div中的一个元素,我尝试过搜索答案,但只找到了java代码。由于我是硒新手,我正在使用表格的方式进行测试。 我找到了这个答案: 您可以使用cssSelector, driver.switchTo().frame(driver.findElement(通过.cssSelector(“iframe[title='Fill Quote'))); 但没有名为dri

  • 我在干什么? 步骤1-启用邻近API: 为了使用接近API,它必须首先在谷歌开发控制台中启用。使用本教程,我为我的项目启用了对邻近API的支持 步骤2-获取凭据: 根据本教程,我需要得到客户端ID和秘密。这就是我困惑的地方。凭据->添加凭据->OAuth2.0客户端ID->选择Chrome App单选按钮(因为我使用的是Postman)->输入Postman的Chrome Web store UR