Fetch api

219 阅读1分钟

XMLHttpRequest的问题

  • 所有的功能全部集中在同一个对象上,容易书写出混乱不易维护的代码
  • 采用传统的事件驱动模式,无法适配新的 Promise Api

Fetch Api 的特点

  • 并非取代 AJAX,而是对 AJAX 传统 API 的改进
  • 精细的功能分割:头部信息、请求信息、响应信息等均分布到不同的对象,更利于处理各种复杂的 AJAX 场景
  • 使用 Promise Api,更利于异步代码的书写
  • Fetch Api 并非 ES6 的内容,属于 HTML5 新增的 Web Api

基本使用

使用fetch函数即可立即向服务器发送网络请求

  • 该函数有两个参数:
    • 必填,字符串,请求地址
    • 选填,对象,请求配置

使用 Fetch API,我们可以发送 GET、POST、PUT、DELETE 等不同类型的请求,并能够设置请求头、传递参数和处理响应数据。下面是 Fetch API 的基本使用示例:

// 发送 GET 请求
fetch('https://api.test.com/data')
  .then(res => res.json())
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });

// 发送 POST 请求
fetch('https://api.test.com/data', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ username: 'zero', password: '123456' }),
})
  .then(res => res.json())
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });

总结

Fetch API 是ES6新增的,用于进行网络请求。它提供了一种简洁、灵活的方式来发送 HTTP 请求,并处理响应数据。