js fetch處理異步請求

以往一直認爲異步請求只能使用原生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

  • 即便響應是HTTP 404或500,返回的Promise fetch() 也不會拒絕HTTP錯誤狀態。相反,它將正常解析(ok狀態設置爲false),它只會拒絕網絡故障或阻止要求完成。
  • 默認狀況下, 若是站點依靠維護用戶會話(發送cookie,必須設置credentials init選項,  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)
相關文章
相關標籤/搜索