Fetch請求

Fetch概念:
fetch號稱是AJAX的替代品,是在ES6出現的,使用了ES6中的promise對象。Fetch是基於promise設計的。Fetch的代碼結構比起ajax簡單多了,參數有點像jQuery ajax。
可是,必定記住 fetch不是ajax的進一步封裝,而是原生js,沒有使用XMLHttpRequest對象。

一個簡單的Fetch請求例子:
fetch(url).then(function(response){

  1.res.arrayBuffer()    
  arrayBuffer() 方法會返回一個promise,能夠解決一個ArrayBuffer
  2.res.blob()
  blob() 方法將返回一個promise,使用一個Blob解決
  3.res.formData()
  formData() 方法返回一個Promise,它使用一個FormData對象來解決
  4.res.json()
  json() 方法返回解析正文文本爲JSON的結果。這能夠是任何能夠由JSON表示的東西:對象、數組、字符串、數字等等
  5.res.text()
  text() 方法返回一個promise,使用一個USVString解決
css

})
 
Fetch請求的缺點:
1)fetch只對網絡請求報錯,對400,500都當作成功的請求,服務器返回 400,500 錯誤碼時並不會 reject,只有網絡錯誤這些致使請求不能完成時,fetch 纔會被 reject。 2)fetch默認不會帶cookie,須要添加配置項: fetch(url, {credentials: 'include'}) 3)fetch不支持abort,不支持超時控制,使用setTimeout及Promise.reject的實現的超時控制並不能阻止請求過程繼續在後臺運行,形成了流量的浪費 4)fetch沒有辦法原生監測請求的進度,而XHR能夠
相關文章
相關標籤/搜索