Fetch 的 GET 和 POST 请求:现代网络请求的优雅方式

在这里插入图片描述

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》《2024面试高频手撕题》《前端求职突破计划》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》《带你从入门到实战全面掌握 uni-app》

引言

Fetch API 是现代浏览器提供的一个用于替代 XMLHttpRequest 的接口,它允许网页进行网络请求,获取资源。Fetch 使用 Promise,使得异步操作更加简洁和易于管理。本文将介绍如何使用 Fetch API 发送 GET 和 POST 请求,以及如何处理响应和错误。

Fetch API 简介

Fetch API 提供了一个 JavaScript Promise 来处理网络请求,它支持流式传输和中断请求等高级功能。Fetch API 是基于资源的请求,而不是基于文档的请求,这意味着它可以用于任何类型的 HTTP 请求。

发送 GET 请求

GET 请求用于从服务器检索数据。以下是使用 Fetch API 发送 GET 请求的基本示例:

// 发送 GET 请求
fetch('https://api.example.com/data')
  .then(response => {
    if (!response.ok) {
      throw new Error('Network response was not ok');
    }
    return response.json(); // 解析响应体为 JSON
  })
  .then(data => {
    // 处理响应数据
    console.log(data);
  })
  .catch(error => {
    // 处理错误
    console.error('There has been a problem with your fetch operation:', error);
  });

添加请求参数

对于 GET 请求,可以通过在 URL 中添加查询字符串来传递参数:

const url = new URL('https://api.example.com/data');
url.searchParams.append('search', 'keyword');
url.searchParams.append('page', 1);

fetch(url)
  // ...其余部分与上面相同

发送 POST 请求

POST 请求通常用于向服务器发送数据以进行处理。以下是使用 Fetch API 发送 POST 请求的基本示例:

// 发送 POST 请求
fetch('https://api.example.com/data', {
  method: 'POST', // 指定请求方法
  headers: {
    'Content-Type': 'application/json' // 设置请求头
  },
  body: JSON.stringify({ key1: 'value1', key2: 'value2' }) // 请求体
})
  .then(response => {
    if (!response.ok) {
      throw new Error('Network response was not ok');
    }
    return response.json();
  })
  .then(data => {
    // 处理响应数据
    console.log(data);
  })
  .catch(error => {
    // 处理错误
    console.error('There has been a problem with your fetch operation:', error);
  });

处理响应和错误

Fetch API 的 then 方法接收一个 Response 对象,该对象包含关于响应的信息。你可以检查 response.ok 来确定请求是否成功,或者使用 response.status 来获取 HTTP 状态码。

错误处理

Fetch API 不会在网络错误(如 DNS 解析失败、连接超时等)时 reject Promise,因此需要在 catch 块中处理这些错误。对于 HTTP 错误状态码(如 404 或 500),你需要手动检查 response.ok 并抛出错误。

结论

Fetch API 提供了一种现代且强大的方式来处理网络请求。它的基于 Promise 的 API 设计使得异步代码更加清晰和易于管理。无论是发送 GET 请求来检索数据,还是发送 POST 请求来提交数据,Fetch API 都提供了一种简单而一致的方式来处理这些操作。通过掌握 Fetch API 的基本用法,你可以更有效地与后端服务进行通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿珊和她的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值