XMLHttpRequest:
從XMLHttpRequest是一個Javascript對象,用于在后臺與服務器交換數據。是原生js中的一種請求數據的一種方法,現在已經被W3C標準化收到所有的瀏覽器支持。
使用:當我們想要使用XMLHttpRequest發(fā)送一個請求時,通常這樣來做:
首先創(chuàng)建一個 XMLHttpRequest 實例=>之后使用open方法初始化一個請求:=>定義回調函數,只要XMLHttpRequest.readyState 屬性發(fā)生變化,就會觸發(fā)readystatechange事件,同時有一個事件處理回調函數被執(zhí)行=>最后發(fā)送請求,xmlhttp.open(“方式”,”地址”,”標志位”)

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

fetch?
瀏覽器現在支持Fetch API,可以無須其他庫就能實現Ajax,Fetch你想獲取資源,Fetch會返回Promise,所以在獲取資源后,可以使用.then方法做你想做的。
第一個參數是設置請求方法(如post、put或del),Fetch會自動設置方法為get。
第二個參數是設置頭部。因為一般使用JSON數據格式,所以設置ContentType為application/json。
第三個參數是設置包含JSON內容的主體。因為JSON內容是必須的,所以當設置主體時會調用JSON.stringify。
實踐中,post請求會像下面這樣:

獲取異常,返回的promise

更有: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)