fetch API獲取返回值的方式
阿新 • • 發佈:2018-12-08
使用fetch API來做後端請求,相比較傳統的Ajax方式,在寫出的程式碼上更加容易理解,也更便於別人看懂。但是在使用的過程中,經常有同學不能順利從傳統的Ajax請求(如果使用jquery的話,就是$.ajax
,$.post
,$.get
)轉移到新的fetch方式,很多時候就是卡在了獲取響應資料的環節上。
用fetch來獲取資料,如果響應正常返回,我們首先看到的是一個response物件,其中包括返回的一堆原始位元組,這些位元組需要在收到後,需要我們通過呼叫方法將其轉換為相應格式的資料,比如JSON
,BLOB
或者TEXT
等等。
比如,我們通過下面的請求,是無法讀取到網頁內容的:
fetch('https://www.baidu.com/').then(res => console.log(res))
打印出來的僅僅是一個原始的response物件而已,從中看不到任何的返回內容。
而為了能夠讀取到返回的內容,我們需要在收到response物件後,立即將其轉換為我們想要的格式,比如TEXT:
fetch('https://www.baidu.com/').then(res => res.text()).then(res => console.log(res))
這樣,我們能看到控制檯正確輸出了返回的網頁內容。通過第二次回撥才能獲取到具體的返回資料,這可能是一開始使用fetch
如果返回的資料是json
,就可以呼叫res.json()
方法,將返回內容轉成json
物件,除此之外還有轉換為其它型別資料的方法,具體請參考如下的資源:
參考文章:https://davidwalsh.name/fetch
官方文件:https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch