fetch()函数说明与使用方法详解

fetch()函数说明与使用方法详解

fetch() 是浏览器原生提供的一个用于发送请求和接收响应数据的方法,可以使用该方法向服务器发送请求获取数据,并接收返回的数据。下面是一些常用的 fetch() 的使用方法。

基本使用方法

代码示例:

fetch(url)
  .then(response => { 
    return response.json() 
  })
  .then(data => { 
    console.log(data) 
  })
  .catch(error => { 
    console.log(error) 
  })

参数 url 表示要请求的资源的 URL,返回值是一个 Promise 对象。调用 fetch() 发起请求后,返回的 Promise 对象立即进入 pending 状态。然后通过 then() 方法来处理从服务器返回的响应数据。在 then() 回调函数中,我们可以接收到一个 Response 对象,我们可以将其解析为 JSON 格式的数据,并将其传递给下一个 then() 方法,这个下一个 then() 方法中的 data 就是服务器返回的数据。

请求类型

HTTP 请求方法

fetch() 方法默认的是 GET 请求方式,如果需要使用 POST、PUT、DELETE 等其他请求方式,需要在请求选项中指定,代码示例如下:

fetch(url, {
  method: 'POST',
  body: JSON.stringify(data),
  headers: {
    'Content-Type': 'application/json'
  }
})

fetch() 的第二个参数选项包含如下属性:

  • method 表示请求的方法。
  • body 表示请求体,一般用于 POST 请求的数据。
  • headers 表示请求头。

请求可能的状态

fetch() 的 Response 对象表示了通信的响应,有很多属性可以表示被响应的状态,例如 status 和 statusText 属性。

状态码 描述
200 ~ 299 表示成功响应
300 ~ 399 表示重定向
400 ~ 499 表示客户端请求错误
500 ~ 599 表示服务器请求错误

示例

下面展示一个简单的例子:

fetch('https://api.github.com/users')
  .then(response => response.json())
  .then(data => {
    console.log(data);
  })
  .catch(error => console.log(error));

这个例子向 GitHub API 发起了一个 GET 请求获取用户列表信息。

再看一个 POST 请求的例子:

const data = { name: 'john', age: 28 };

fetch('https://example.com/api/users', {
  method: 'POST',
  body: JSON.stringify(data),
  headers: {
    'Content-Type': 'application/json'
  }
})
  .then(response => {
    if (response.ok) {
      return response.json();
    } else {
      throw new Error('Request failed!');
    }
  })
  .then(data => {
    console.log(data);
  })
  .catch(error => console.log(error));

这个例子向 https://example.com/api/users 发起一个 POST 请求,让服务器创建一个新的用户。在请求选项中,我们指定了请求的方法为 POST,并通过 body 属性添加了要发送的数据。在 headers 属性中添加了 Content-Type 表示传递的数据类型为 JSON 格式。在 then() 回调函数中,如果响应成功,则将其解析为 JSON 格式的数据,并将其传递给下一个 then() 方法,这个下一个 then() 方法中的 data 就是服务器返回的数据。如果有错误发生,则会跳转到 catch() 方法中,打印错误信息。

结论

fetch() 是一个方便、易用的 API,能够帮助你以简单、直观的方式和服务器进行交互。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:fetch()函数说明与使用方法详解 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • Android 创建与解析XML(四)——详解Pull方式

    对于“Android 创建与解析XML(四)——详解Pull方式”这个话题,我会进行以下几方面的讲解: Pull方式解析XML文件的特点和基本原理 Pull解析XML的主要API以及使用方式 Pull方式解析XML的示例详解 1. Pull方式解析XML文件的特点和基本原理 在Android中,解析XML文件主要有三种方式:DOM方式、SAX方式和Pull方…

    html 2023年5月30日
    00
  • ajax的responseText乱码的问题的解决方法

    针对“ajax的responseText乱码的问题的解决方法”,我可以提供如下完整攻略: 一、问题描述 在实际项目中,使用ajax请求文本数据时,有时候会遇到responseText返回的数据乱码问题,尤其是返回的数据是非英文字符或非常见的编码格式时,这个问题会非常明显。这个问题的产生原因很可能是由于请求方和响应方的编码格式不一致,或者响应方没有正确设置字符…

    html 2023年5月31日
    00
  • 小结下MySQL中文乱码,phpmyadmin乱码,php乱码 产生原因及其解决方法第3/3页

    下面是关于“小结下MySQL中文乱码,phpmyadmin乱码,php乱码 产生原因及其解决方法”的完整攻略: 1. 产生原因 MySQL中中文乱码主要是因为以下两个原因: MySQL默认字符集为latin1,而不是utf8。这导致MySQL无法正确存储和处理中文字符,从而出现乱码问题。 连接MySQL数据库时的字符集与MySQL数据库的字符集不匹配。如果P…

    html 2023年5月31日
    00
  • XMLHttp ASP远程获取网页内容代码

    下面是针对XMLHttp ASP远程获取网页内容的完整攻略: 什么是XMLHttp ASP远程获取网页内容 XMLHttp ASP远程获取网页内容,也叫作AJAX,全称为Asynchronous JavaScript and XML(异步JavaScript和XML)。它是一种在不重新加载整个网页的情况下,能够部分更新网页内容的技术。 在浏览器中,JavaS…

    html 2023年5月30日
    00
  • mybatis mapper.xml 区间查询条件详解

    下面我来详细讲解“mybatis mapper.xml 区间查询条件详解”的完整攻略。 1. 概述 在MyBatis的mapper.xml文件中,我们可以使用条件语句(\<if>、\<where>、\<foreach>等)来实现区间查询。具体来说,在进行区间查询时需要使用到两个关键字:$gt和$lt分别表示大于和小于。 2…

    html 2023年5月30日
    00
  • ASP.NET读取XML文件4种方法分析

    ASP.NET是一个强大的Web应用程序框架,它允许开发人员使用不同的语言和工具来创建互联网上的动态应用程序。其中,读取XML文件是ASP.NET程序中很常见的操作,它使得我们能够在程序中使用XML自定义数据。 在ASP.NET中,读取XML文件有以下四种方法: 方法1:使用XmlDocument类 XmlDocument类是由System.Xml命名空间提…

    html 2023年5月30日
    00
  • springboot乱码问题解决方案

    让我来为您详细讲解“Spring Boot乱码问题解决方案”的完整攻略。 问题背景 随着物联网等新兴技术的不断发展,越来越多的应用开始使用Spring Boot来搭建web服务。然而,在使用Spring Boot进行开发时,很多开发者可能会遇到乱码的问题。这些乱码问题可能因为多种原因导致,例如编码不统一、请求头未设置字符集等等。在许多情况下,这些问题会给用户…

    html 2023年5月31日
    00
  • java dom4j解析xml文件代码实例分享

    Java dom4j解析XML文件代码实例分享 本文将介绍如何使用dom4j库解析XML文件,并提供两个示例,一个用于解析XML文档的结构,另一个用于解析XML文件的内容。 准备工作 首先,需要在项目中添加dom4j库的依赖,可以使用Maven或手动添加jar包的方式。 <dependency> <groupId>dom4j</…

    html 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部