详解Fetch的使用方法

fetch号称是AJAX的替代品,是在ES6出现的,使用了ES6中的promise对象。Fetch是基于promise设计的。Fetch的代码结构比起ajax简单多了,参数有点像jQuery ajax。但是,一定记住fetch不是ajax的进一步封装,而是原生js,没有使用XMLHttpRequest对象,下面为大家详细讲解一下Fetch的使用方法。

ajax

使用步骤 1.创建XmlHttpRequest对象 2.调用open方法设置基本请求信息 3.设置发送的数据,发送请求 4.注册监听的回调函数 5.拿到返回值,对页面进行更新

//1.创建Ajax对象
   if(window.XMLHttpRequest){
      var oAjax=new XMLHttpRequest();
   }else{
      var oAjax=new ActiveXObject("Microsoft.XMLHTTP");
   }

   //2.连接服务器(打开和服务器的连接)
   oAjax.open('GET', url, true);

   //3.发送
   oAjax.send();

   //4.接收
   oAjax.onreadystatechange=function (){
      if(oAjax.readyState==4){
          if(oAjax.status==200){
             //alert('成功了:'+oAjax.responseText);
             fnSucc(oAjax.responseText);
          }else{
             //alert('失败了');
             if(fnFaild){
                 fnFaild();
             }
          }
       }
   };

fetch

特点 1、第一个参数是URL: 2、第二个是可选参数,可以控制不同配置的 init 对象 3、使用了 JavaScript Promises 来处理结果/回调:

fetch(url).then(response => response.json())
 .then(data => console.log(data))
 .catch(e => console.log("Oops, error", e))

更酷的一点 你可以通过Request构造器函数创建一个新的请求对象,你还可以基于原有的对象创建一个新的对象。 新的请求和旧的并没有什么不同,但你可以通过稍微调整配置对象,将其用于不同的场景。例如:

var req = new Request(URL, {method: 'GET', cache: 'reload'});
fetch(req).then(function(response) {
 return response.json();
}).then(function(json) {
 insertPhotos(json);
});

上面的代码中我们指明了请求使用的方法为GET,并且指定不缓存响应的结果,你可以基于原有的GET请求创建一个POST请求,它们具有相同的请求源。代码如下:

// 基于req对象创建新的postReq对象
var postReq = new Request(req, {method: 'POST'});

fetch和ajax 的主要区别

1、fetch()返回的promise将不会拒绝http的错误状态,即使响应是一个HTTP 404或者500 2、在默认情况下 fetch不会接受或者发送cookies

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/6937.html

(0)
晴川运维晴川运维
上一篇 2025年6月8日
下一篇 2025年6月8日

相关推荐

  • Linux下查看时间具体方法

    Linux系统中查看时间有多种方法,本篇文章将这些方法进行了总结,通过具体案例为大家进行演示,有需要的小伙伴可以参考一下。 1.date 这个是最经典的系统查看时间的命令,也是脚本…

    Linux系统 2025年6月27日
  • 讲解一下C 语言布尔类型

    C语言就没有真正的布尔类型,布尔类型实际上是用数值型(int,float,char等)表示的,不能自动打印为true或者false,只能自己写代码实现。 C 语言标准(C89) 没…

    Linux系统 2025年6月8日
  • Linux下常见端口转发

    在一些实际的场景里,我们需要通过利用一些端口转发工具,比如系统自带的命令行工具或第三方小软件,来绕过网络访问限制触及目标系统,本篇文章重点为大家分享一下Linux下常见端口转发。 …

    Linux系统 2025年6月8日
  • Linux中使用TCP 封装器加强网络服务安全

    在这篇文章中,我们将会讲述什么是 TCP 封装器TCP wrappers以及如何在一台 Linux 服务器上配置他们来限制网络服务的权限。在开始之前,我们必须澄清 TCP 封装器并…

    Linux系统 2025年6月11日
  • Mongodb复制集的安装和部署

    Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary…

    Linux系统 2025年6月22日
  • Go 代码中如何绑定 Host

    Go 代码中如何绑定 Host?本篇重点为大家讲解一下Go 代码绑定 Host具体方法, 有需要的小伙伴可以参考一下。 本文示例: IP:192.168.1.102,也就是说需要访…

    Linux系统 2025年7月5日
  • 详解python字典和结构化数据

    5.1 字典数据类型 字典的索引可以使用许多不同类型的数据,不只是整数。字典的索引被称为“键”,键及其关联的值称为“键—值”对,在代码中,字典输入时带花括号{}。 字典中的表项是不…

    Linux系统 2025年6月8日
  • Linux中清除APT缓存具体方法

    Linux中如何清除APT缓存?本篇文章重点为大家讲解一下Linux中清除APT缓存具体方法,有需要的小伙伴可以参考一下。 如何清除 APT 缓存?你只需使用这个 apt-get …

    Linux系统 2025年6月8日
  • Linux下安装LDAP

    LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址被使用,不过根据组织者的需要,它可以做得更…

    Linux系统 2025年6月8日
  • 详解puppet

    puppet是一个IT基础设施自动化管理工具,它能够帮助系统管理员管理基础设施的整个生命周期: 供应、配置、联动及报告,基于puppet ,可实现自动化重复任务、快速部署关键性应用…

    Linux系统 2025年6月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注