前端 fetch 异步通信的未来,更简洁异步请求 API

前端 fetch 异步通信的未来,更简洁异步请求 API

兼容性: fetch 还属于早期阶段,目前只有部分高版本浏览器实现该接口Chrome43+、Edge14、Firefox40+、Opera29+、Safari10+

先来看一个使用 XMLHttpRequest 发送异步请求例子:

var xhr = new XMLHttpRequest()
xhr.onreadystatechange = function () {
  if (this.readyState === 4) {
    if (this.status === 200) {
      // 成功 this.responseText
    } else {
      // 失败 this.responseText
    }
  }
}
xhr.open('GET', '/api/user/list', true)
xhr.onerror = function () {
  // 发生错误
}
xhr.send()

再来看一下 fetch 发送异步请求例子:

// 一个简单的 GET 请求
fetch('/api/user/list').then(response => {
  // response.ok 判断请求是否成功
  response.json().then(data => {
    // 数据
  })
})
 
// 设置参数、请求头等..
const headers = new Headers()
headers.set('Content-Type', 'text/plain')
fetch('/api/user/list', {method: 'GET', headers: headers}).then(response => {
  // response.ok 判断请求是否成功
  response.json().then(data => {
    // 数据
  })
})


Response 对象部分属性说明

属性

类型

描述

json

Function

得到 json,返回 Promise 对象

test

Function

得到 text,返回 Promise 对象

redirected

Boolean

是否重定向了

body

ReadableStream

数据流

bodyUsed

Boolean

内容是否已被读取

headers

Headers

返回响应头

status

Number

返回状态码

statusText

String

状态

url

String

返回请求路径

ok

Boolean

根据状态判断完成还是失败

redirected

Boolean

是否重定向了

type

String

类型




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值