详解JS中常用的Fetch API

 更新时间:2023年07月03日 08:23:03   作者:来碗疙瘩汤  
Fetch API是一种用于进行网络请求的现代JavaScript API,提供了更简洁、强大和灵活的方式来处理异步数据交互,本文主要为大家介绍了js中js中基本用法,感兴趣的同学可以参考下

Fetch API 是一种用于进行网络请求的现代 JavaScript API,相对于传统的 XMLHttpRequest,Fetch API 更符合 Promise 和 async/await 的编程模型。

下面是一个使用 Fetch API 请求数据的示例代码:

fetch('https://api.example.com/data')
  .then(function(response) {
    if (response.ok) {
      return response.json(); // 解析响应的 JSON 数据
    } else {
      throw new Error('请求失败:' + response.status);
    }
  })
  .then(function(data) {
    // 处理解析后的数据
    console.log(data);
  })
  .catch(function(error) {
    // 处理错误
    console.log('发生错误:' + error.message);
  });

上述代码使用 Fetch API 发起了一个 GET 请求,并在 Promise 的链式调用中处理响应。如果响应状态码为 200(response.ok 为真),则解析响应的 JSON 数据;否则,抛出一个错误。最后,通过 .then 处理解析后的数据,或通过 .catch 处理捕获到的错误。

在使用 Fetch API 进行异步请求时,.then() 方法用于处理 Promise 对象的成功状态。Fetch API 返回的 Promise 对象在请求成功时会触发第一个 .then() 方法,并将响应对象作为参数传递给该方法。

在示例中的第一个 .then() 中,我们检查响应对象的 ok 属性来判断请求是否成功(状态码为 200)。如果成功,我们使用 .json() 方法解析响应的 JSON 数据,并返回一个新的 Promise 对象,以便将解析后的数据传递给下一个 .then()

第二个 .then() 方法用于处理解析后的数据,它接收解析后的数据作为参数,并执行相应的操作。在示例中,我们使用 console.log() 打印解析后的数据。

请注意,每个 .then() 方法返回的都是一个新的 Promise 对象,这使得我们可以在链式调用中继续处理数据或进行其他操作。

在链式调用中,如果在任何一个 .then() 方法中抛出错误,或者前一个 .then() 返回的 Promise 对象被拒绝(reject),则会触发 .catch() 方法来处理错误情况。.catch() 方法接收错误对象作为参数,并执行相应的错误处理逻辑。

因此,.then() 方法用于处理成功状态的情况,而 .catch() 方法用于处理错误状态的情况。通过这种方式,我们可以更好地控制和处理异步操作的结果。

Fetch API 还支持其他请求方法、请求头的设置、发送数据等功能。您可以根据具体需求进行相应的调整和扩展。

需要注意的是,Fetch API 的兼容性较好,但在一些旧版本的浏览器中可能不被支持。为了确保兼容性,您可以使用 Polyfill 或将其与传统的 XMLHttpRequest 结合使用。

当使用Fetch API时,您需要使用fetch()函数发起网络请求,并使用.then().catch()方法处理响应和错误。下面是Fetch API的详细使用方法:

  • 发起GET请求并处理响应:
fetch('https://api.example.com/data')
  .then(function(response) {
    if (response.ok) {
      return response.json(); // 解析响应的JSON数据
    } else {
      throw new Error('请求失败:' + response.status);
    }
  })
  .then(function(data) {
    // 处理解析后的数据
    console.log(data);
  })
  .catch(function(error) {
    // 处理错误
    console.log('发生错误:' + error.message);
  });

fetch()函数中传入URL作为参数,它将返回一个Promise对象。您可以使用.then()方法处理成功的响应,如果状态码为200(response.ok为真),可以使用.json()方法解析响应的JSON数据。如果发生错误,可以通过.catch()方法捕获并处理错误。

  • 发起POST请求并发送数据:
var data = {
  username: 'John',
  password: 'secret'
};
fetch('https://api.example.com/login', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(data)
})
  .then(function(response) {
    if (response.ok) {
      return response.json();
    } else {
      throw new Error('请求失败:' + response.status);
    }
  })
  .then(function(data) {
    console.log(data);
  })
  .catch(function(error) {
    console.log('发生错误:' + error.message);
  });

在这个示例中,我们使用fetch()函数的第二个参数来配置请求。我们指定请求的方法为POST,并设置请求头为application/json。我们使用JSON.stringify()将数据转换为JSON字符串,并将其作为请求的主体(body)。在.then()中处理响应,以及在.catch()中处理错误。

  • 使用async/await进行请求:
async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    if (response.ok) {
      const data = await response.json();
      console.log(data);
    } else {
      throw new Error('请求失败:' + response.status);
    }
  } catch (error) {
    console.log('发生错误:' + error.message);
  }
}
fetchData();

通过使用async/await,可以将异步请求的处理逻辑更简洁地表达出来。在fetch()response.json()之前使用await关键字,可以等待Promise对象解析为结果。try/catch块用于捕获错误并进行处理。

这些示例展示了Fetch API的基本使用方法,您可以根据需要进行进一步的配置和调整。请记住,对于跨域请求和处理特定类型的数据,可能需要额外的配置和处理。

以上就是详解JS中常用的Fetch API的详细内容,更多关于JS Fetch API的资料请关注脚本之家其它相关文章!

相关文章

  • 浏览器页面区域大小的js获取方法

    浏览器页面区域大小的js获取方法

    浏览器页面的区域大小如何获取,在本有个不错的示例,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-09-09
  • 浅谈JS 数字和字符串之间相互转化的纠纷

    浅谈JS 数字和字符串之间相互转化的纠纷

    下面小编就为大家带来一篇浅谈JS 数字和字符串之间相互转化的纠纷。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • javascript中时区知识的整理UTC GMT问题

    javascript中时区知识的整理UTC GMT问题

    这篇文章主要介绍了javascript中时区知识的整理UTC GMT问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Js操作树节点自动折叠展开的几种方法

    Js操作树节点自动折叠展开的几种方法

    这篇文章主要介绍了Js操作树节点自动折叠展开的几种方法,需要的朋友可以参考下
    2014-05-05
  • JavaScript编写九九乘法表(两种任选)

    JavaScript编写九九乘法表(两种任选)

    本文主要介绍了JavaScript编写九九乘法表的两种方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • js 把字符串当函数执行的方法

    js 把字符串当函数执行的方法

    一段字符串 里面包含了 要执行的函数和参数等,需要去执行这段字符串。
    2010-03-03
  • javascript实现数字倒计时特效

    javascript实现数字倒计时特效

    这篇文章主要介绍了javascript实现网页倒计时数字时钟效果,是一款非常实用的javascript倒计时特效,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-03-03
  • js 弹出菜单/窗口效果

    js 弹出菜单/窗口效果

    想象一下,你把一个重要内容放在一个弹出窗口,又不聚集到这个窗口。让使用屏幕阅读器的同学情何以堪,只有当他们 tab 到这页面结束,还继续 tab,才可能找到这个弹窗
    2011-10-10
  • js数字转换为float,取N位小数

    js数字转换为float,取N位小数

    在javascript中不分单精度float和双精度double,凡事有小数的变量都认为是float,因此要取小数后的n位,要用方法toFixed(n)来得到
    2014-02-02
  • JavaScript时间戳与时间相互转换的常用方法

    JavaScript时间戳与时间相互转换的常用方法

    这篇文章主要介绍了JavaScript时间戳与时间相互转换的常用方法,包括获取当前时间戳、时间戳转时间对象、时间戳转格式化字符串、时间字符串转时间戳等,还讨论了常见应用场景如计算时间差、倒计时和UTC与本地时间互转,需要的朋友可以参考下
    2025-04-04

最新评论