fetch了解

XMLHttpRequest:

從XMLHttpRequest是一個Javascript對象,用于在后臺與服務器交換數據。是原生js中的一種請求數據的一種方法,現在已經被W3C標準化收到所有的瀏覽器支持。

使用:當我們想要使用XMLHttpRequest發(fā)送一個請求時,通常這樣來做:

首先創(chuàng)建一個 XMLHttpRequest 實例=>之后使用open方法初始化一個請求:=>定義回調函數,只要XMLHttpRequest.readyState 屬性發(fā)生變化,就會觸發(fā)readystatechange事件,同時有一個事件處理回調函數被執(zhí)行=>最后發(fā)送請求,xmlhttp.open(“方式”,”地址”,”標志位”)

XMLHttpRequest請求

ajax

作為 jQuery封裝 的 ajax 接口,使用方便,


ajax請求

fetch?

瀏覽器現在支持Fetch API,可以無須其他庫就能實現Ajax,Fetch你想獲取資源,Fetch會返回Promise,所以在獲取資源后,可以使用.then方法做你想做的。

第一個參數是設置請求方法(如post、put或del),Fetch會自動設置方法為get。

第二個參數是設置頭部。因為一般使用JSON數據格式,所以設置ContentType為application/json。

第三個參數是設置包含JSON內容的主體。因為JSON內容是必須的,所以當設置主體時會調用JSON.stringify。

實踐中,post請求會像下面這樣:

請求格式

獲取異常,返回的promise

catch捕獲錯誤信息

更有:Fetch是很好的方法,能發(fā)送和接收數據。不需要在編寫XHR請求或依賴于jQuery。

盡管Fetch很好,但是其錯誤處理不是很直接。在處理之前,需要讓錯誤信息進入到catch方法中。

使用zlFetch庫,就不需要擔心錯誤處理了,zlfetch庫是可以安裝的( npm install zl-fetch --save),zlFetch庫就是上例中handleResponse函數,所以可以不用生成此函數,不需要擔心響應來處理數據和錯誤,zlFetch還能無須轉換成JSON格式就能發(fā)送JSON數據,下面兩個函數做了同樣事情,zlFetch加入Content-type然后將內容轉換為JSON格式。zlFetch處理身份認證也很容易。常用方法是在頭部加入Authorization,其值設為Bearer your-token-here。如果你需要增加token選項,zlFetch會幫你創(chuàng)建此域。(https://www.cnblogs.com/libin-1/p/6853677.html)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 本文詳細介紹了 XMLHttpRequest 相關知識,涉及內容: AJAX、XMLHTTP、XMLHttpReq...
    semlinker閱讀 13,994評論 2 18
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 28,803評論 1 45
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,560評論 0 7
  • 今天我們在語文課上,老師在我們畫了一幅畫畫的是我是一棵樹,我畫了一棵樹我在樹上畫了4腹肌,我還給他畫了兩只...
    我自己喜歡的事活著閱讀 130評論 0 0

友情鏈接更多精彩內容