js fetch處理異步請求


以往一直認為異步請求只能使用原生js的XMLHttpRequest或jQuery的$.ajax()、$.post()等框架封裝的異步請求方法

原來js還提供fetch來替代XMLHttpRequest,詳情可見 https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

fetch 規格不同於  jQuery.ajax() 主要有兩個方面牢記:

  • 即使響應是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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM