LearningRecord icon indicating copy to clipboard operation
LearningRecord copied to clipboard

Fetch API 相对于传统的 Ajax 有哪些改进?

Open Rashomon511 opened this issue 5 years ago • 0 comments

fetch和XMLHttpRequest相比,主要有以下优点:

语法简洁,更加语义化 基于标准 Promise 实现,支持 async/await 同构方便,使用 isomorphic-fetch

Ajax和Fetch区别

  • ajax是使用XMLHttpRequest对象发起的,但是用起来很麻烦,所以ES6新规范就有了fetch,fetch发一个请求不用像ajax那样写一大堆代码。
  • 使用fetch无法取消一个请求,这是因为fetch基于Promise,而Promise无法做到这一点。
  • 在默认情况下,fetch不会接受或者发送cookies
  • fetch没有办法原生监测请求的进度,而XMLHttpRequest可以
  • fetch只对网络请求报错,对400,500都当做成功的请求,需要封装去处理
  • fetch由于是ES6规范,兼容性上比不上XMLHttpRequest

fetch与ajax(XMLHttpRequest)相比

Rashomon511 avatar Jun 06 '19 02:06 Rashomon511