以往一直認爲異步請求只能使用原生js的XMLHttpRequest或jQuery的$.ajax()、$.post()等框架封裝的異步請求方法ajax
原來js還提供fetch來替代XMLHttpRequest,詳情可見 https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetchjson
fetch
規格不一樣於 jQuery.ajax()
主要有兩個方面牢記:api
fetch()
也不會拒絕HTTP錯誤狀態。相反,它將正常解析(ok
狀態設置爲false),它只會拒絕網絡故障或阻止要求完成。fetch
則不會發送或接收來自服務器的任何cookie,從而致使未經身份 驗證的請求。1 fetch('https://api-to-call.com/endpoint').then(response => { 2 if(response.ok){ 3 return response.json(); 4 } 5 throw new Error('Request failed!'); 6 } , networkError => console.log(networkError.message) 7 ).then(jsonResponse => jsonResponse)