1. 程式人生 > >fetch API獲取返回值的方式

fetch API獲取返回值的方式

使用fetch API來做後端請求,相比較傳統的Ajax方式,在寫出的程式碼上更加容易理解,也更便於別人看懂。但是在使用的過程中,經常有同學不能順利從傳統的Ajax請求(如果使用jquery的話,就是$.ajax,$.post,$.get)轉移到新的fetch方式,很多時候就是卡在了獲取響應資料的環節上。

用fetch來獲取資料,如果響應正常返回,我們首先看到的是一個response物件,其中包括返回的一堆原始位元組,這些位元組需要在收到後,需要我們通過呼叫方法將其轉換為相應格式的資料,比如JSONBLOB或者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

時,讓我們感到不太習慣的地方,但是當我們習慣之後,fetch的介面用起來是非常直觀和便利的。

如果返回的資料是json,就可以呼叫res.json()方法,將返回內容轉成json物件,除此之外還有轉換為其它型別資料的方法,具體請參考如下的資源:

參考文章:https://davidwalsh.name/fetch
官方文件:https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch