位置: 编程技术 - 正文

你不需要jQuery(三) 新AJAX方法fetch()(你不需要知道我是谁,祖国知道我)

编辑:rootadmin

推荐整理分享你不需要jQuery(三) 新AJAX方法fetch()(你不需要知道我是谁,祖国知道我),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:你不需要活在别人的认可里,你不需要明白我的固执是什么歌,你不需要知道我的故事是什么歌,你不需要活在别人的认可里,你不需要知道我的故事是什么歌,你不需要知道英文,你不需要jquery,你不需要知道英文,内容如对您有帮助,希望把文章链接给更多的朋友!

XMLHttpRequest来完成ajax有些老而过时了。

fetch()能让我们完成类似 XMLHttpRequest (XHR) 提供的ajax功能。它们之间的主要区别是,Fetch API 使用了 Promises,它让接口更简单、简洁,避免了回调的复杂性,省去了使用复杂的 XMLHttpRequest API。

如果你之前未使用过Promises,你应该先看看《JavaScript Promises 用法》这篇文章。

一、基本Fetch用法

让我们先用一个例子来比较一下使用 XMLHttpRequest 和使用 fetch 之间的不同。我们要请求一个URL,获取JSON格式的返回结果。

XMLHttpRequest一个 XMLHttpRequest 请求需要两个监听器来捕捉 success 和 error 两种情形,而且需要调用 open() 和 send() 方法。

Fetch我们的 fetch 请求的代码基本上是这样的:

我们首先检查请求响应的状态是否是 ,然后才按照 JSON 对象分析响应数据。

fetch()请求获取的内容是一个 Stream 对象。也就是说,当我们调用 json() 方法时,返回的仍是一个 Promise 对象,这是因为对 stream 的读取也是异步的。

返回数据对象的元数据(Metadata)

在上面的例子中,我看到了服务器响应对象Response的基本状态,以及如何转换成JSON。返回的相应对象Response里还有很多的元数据信息,下面是一些:

响应的对象Response类型

当我们执行一个fetch请求时,响应的数据的类型response.type可以是“basic”, “cors” 或 “opaque”。这些类型用来说明应该如何对待这些数据和数据的来源。

你不需要jQuery(三) 新AJAX方法fetch()(你不需要知道我是谁,祖国知道我)

当请求发起自同一个域时,响应的类型将会是“basic”,这时,对响应内容的使用将没有任何限制。

如果请求来自另外某个域,而且响应的具有CORs头信息,那么,响应的类型将是“cors”。 “cors” 和 “basic” 类型的响应基本是一样的,区别在于,“cors”类型的响应限制你只能看到的头信息包括`Cache-Control`, `Content-Language`, `Content-Type`, `Expires`, `Last-Modified`, 和 `Pragma`。

“opaque”类型的响应说明请求来自另外一个域,并且不具有 CORS 头信息。一个opaque类型的响应将无法被读取,而且不能读取到请求的状态,无法看到请求的成功与否。当前的 fetch() 实现无法执行这样的请求。

你可以给fetch请求指定一个模式,要求它只执行规定模式的请求。这个模式可以分为:

“same-origin” 只有来自同域的请求才能成功,其它的均将被拒绝。“cors” 允许不同域的请求,但要求有正确的 CORs 头信息。“cors-with-forced-preflight” 在执行真正的调用前先执行preflight check。“no-cors” 目前这种模式是无法执行的。定义模式的方法是,使用一个参数对象当做fetch方法的第二个参数:

串联 Promises

Promises最大的一个特征是,你可以串联各种操作。对于fetch来说,我们可以在各个fetch操作里共享一些逻辑操作。

在使用JSON API时,我们需要检查每次请求响应的状态,然后解析成JSON对象。使用promise,我们可以简单的将分析状态和解析JSON的代码放到一个单独函数里,然后当做promise返回,这样就是代码更条理了。

我们用 status 函数来检查 response.status 并返回 Promise.resolve() 或 Promise.reject() 的结果,这个结果也是一个 Promise。我们的fetch() 调用链条中,首先如果fetch()执行结果是 resolve,那么,接着会调用 json() 方法,这个方法返回的也是一个 Promise,这样我们就得到一个分析后的JSON对象。如果分析失败,将会执行reject函数和catch语句。

你会发现,在fetch请求中,我们可以共享一些业务逻辑,使得代码易于维护,可读性、可测试性更高。

用fetch执行表单数据提交

在WEB应用中,提交表单是非常常见的操作,用fetch来提交表单数据也是非常简洁。

fetch里提供了 method 和 body 参数选项。

在Fetch请求里发送用户身份凭证信息

如果你想在fetch请求里附带cookies之类的凭证信息,可以将 credentials 参数设置成 “include” 值。

显而易见,fetch API相比起传统的 XMLHttpRequest (XHR) 要简单的多,相比起jQuery里提供ajax API也丝毫不逊色。

标签: 你不需要知道我是谁,祖国知道我

本文链接地址:https://www.jiuchutong.com/biancheng/386690.html 转载请保留说明!

上一篇:深入理解jQuery 事件处理(深入理解计算机系统 电子书)

下一篇:jQuery处理XML文件的几种方法

  • 增值税认证发票平台可以导出发票明细吗?
  • 房地产企业土地增值税
  • 火车票可以抵扣多少增值税
  • 报完税的发票还能作废吗
  • 红字发票没有地址和银行信息跨月了无法作废
  • 基金会计核算的核算主体是
  • 高新企业季度企业所得税预征税率
  • 公车补贴计入什么科目
  • 月底结转都结转什么
  • 购销合同印花税最新政策2023
  • 免税发票有几种类型
  • 实收资本的入账金额怎么算
  • 汇算清缴退税调整利润表
  • 2019一般纳税人转小规模
  • 短期投资算债权吗
  • 公允价值变动损益在利润表哪里
  • 股东投资追加款怎么做账
  • 总公司中标分公司结算可以吗
  • 如何输入特殊符号带圈数字11
  • 运输公司的进项必须是专票吗
  • 房地产业务招待费
  • 员工福利费账务处理
  • PHP:preg_replace_callback()的用法_PCRE正则函数
  • 财务报表怎么判断盈亏
  • 法恩达尔的信
  • php多任务
  • 红字发票负数要怎么抵掉
  • 公允价值变动损益在利润表哪里
  • 销售过程会计核算视频
  • 物流费属于什么税收编码
  • yolov3实例
  • maven jni
  • get命令获取文件夹
  • 电子发票开出后如何查看
  • 软件开发费属于什么费用
  • 退回发票金额是什么意思
  • mysql的索引是什么
  • Windows OpenGL ES 图像曝光度调节
  • 网站升级改造方案
  • java接口基础知识
  • mysql中union什么意思
  • 租入的房屋转租是否交房产税
  • 无形资产收益额的具体测算方法有
  • 公司购买办公楼需要缴纳城镇土地使用税吗
  • 工程项目该如何分类
  • 个税没有达到起征点能摇号吗
  • 承典人是什么意思
  • 总分类账的登记依据和方法取决于企业所采用的
  • 流转税怎么核算
  • 已认证的增值税专用发票可以作废吗
  • 小规模注销时盈余怎么算
  • 出口抵减内销产品应纳税额
  • 子公司内部交易
  • 差旅费的进项税率是多少
  • 房地产一般纳税人可以不预缴增值税吗?
  • 外贸企业怎么开出口发票
  • mysql char函数
  • windows7录音怎么录
  • vsftpd 550错误
  • webcamrt.exe - webcamrt 进程是什么意思
  • windows7自带的画图软件在哪里打开
  • 鼠标点击关闭按钮没反应
  • win10双击打开文件设置方法
  • win10设置回收站位置
  • Win10 Mobile 10586无法更新应用怎么办 一招教你解决
  • Ghost XP SP3 YN8.0装机版 (雨林木风)
  • win8.1核心版密钥
  • win8磁盘占用率100%如何解决
  • 双win系统怎么删除一个
  • WIN10怎么卸载更新
  • css样式不能制作体积更小下载更快的网页
  • bootstrap 树形菜单
  • 新能源审核多久
  • 沈阳国税局局长是谁
  • 要深化税收制度改革健全
  • 车险包括车船费吗
  • 文件清理规则
  • 请问在哪里可以培训护工
  • 山东税务自然人注册怎么回事
  • 美国税务人员
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设