您的位置:首页 > 理论基础 > 计算机网络

fetch 异步通信的未来,更简洁异步请求 API , XMLHttpRequest 即将淘汰

2018-02-03 20:41 671 查看

fetch 异步通信的未来,更简洁异步请求 API , XMLHttpRequest 即将淘汰

兼容性: 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
类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  fetch ajax xhr xe-ajax vxe-ajax