ajax (資料請求) 很重要
阿新 • • 發佈:2022-05-23
開發專案:
靜態網站: 沒有牽扯到資料請求 介面呼叫
動態網站: 資料的請求渲染
請求資料: ajax : 原生的ajax fetch : 原生的請求方法 js axios : 後期框架中使用的方式 promise jquery: $.ajax() ajax: Ajax即Asynchronous Javascript And XML(非同步JavaScript和XML) 用來描述一種使用現有技術集合的‘新’方法 作用: 非同步請求 區域性更新網頁
資料請求的方式: get post axios delete options put patch request 四種方式:增刪改查 get : 獲取 post : 新增 delete : 刪除 put / patch : 修改 http狀態碼: 所有狀態碼的第一個數字代表了響應的五種狀態之一。 1xx : 訊息 2xx : 成功 3xx : 重定向 4xx : 客戶端出錯 請求錯誤 5xx : 伺服器端出錯 伺服器錯誤 6xx : 200 OK 請求已成功,請求所希望的響應頭或資料體將隨此響應返回。出現此狀態碼是表示正常狀態。
304:如果客戶端傳送了一個帶條件的 GET 請求且該請求已被允許,而文件的內容(自上次訪問以來或者根據請求的條件)並沒有改變,則伺服器應當返回這個狀態碼。304響應禁止包含訊息體,因此始終以訊息頭後的第一個空行結尾。
400 Bad Request 1、語義有誤,當前請求無法被伺服器理解。除非進行修改,否則客戶端不應該重複提交這個請求。 2、請求引數有誤。 401 Unauthorized 當前請求需要使用者驗證。
403 Forbidden : 伺服器已經理解請求,但是拒絕執行它。
404 Not Found :請求失敗,請求所希望得到的資源未被在伺服器上發現
500 Internal Server Error :伺服器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。一般來說,這個問題都會在伺服器端的原始碼出現錯誤時出現。
面試題: 常用的http狀態碼 304 完整的流程 案例1: html:
請求資料: ajax : 原生的ajax fetch : 原生的請求方法 js axios : 後期框架中使用的方式 promise jquery: $.ajax() ajax: Ajax即Asynchronous Javascript And XML(非同步JavaScript和XML) 用來描述一種使用現有技術集合的‘新’方法 作用: 非同步請求 區域性更新網頁
資料請求的方式: get post axios delete options put patch request 四種方式:增刪改查 get : 獲取 post : 新增 delete : 刪除 put / patch : 修改 http狀態碼: 所有狀態碼的第一個數字代表了響應的五種狀態之一。 1xx : 訊息 2xx : 成功 3xx : 重定向 4xx : 客戶端出錯 請求錯誤 5xx : 伺服器端出錯 伺服器錯誤 6xx : 200 OK 請求已成功,請求所希望的響應頭或資料體將隨此響應返回。出現此狀態碼是表示正常狀態。
304:如果客戶端傳送了一個帶條件的 GET 請求且該請求已被允許,而文件的內容(自上次訪問以來或者根據請求的條件)並沒有改變,則伺服器應當返回這個狀態碼。304響應禁止包含訊息體,因此始終以訊息頭後的第一個空行結尾。
400 Bad Request 1、語義有誤,當前請求無法被伺服器理解。除非進行修改,否則客戶端不應該重複提交這個請求。 2、請求引數有誤。 401 Unauthorized 當前請求需要使用者驗證。
403 Forbidden : 伺服器已經理解請求,但是拒絕執行它。
404 Not Found :請求失敗,請求所希望得到的資源未被在伺服器上發現
500 Internal Server Error :伺服器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理。一般來說,這個問題都會在伺服器端的原始碼出現錯誤時出現。
面試題: 常用的http狀態碼 304 完整的流程 案例1: html:
<div class="wrapper"></div>
js:
1 let wrapper = document.querySelector('.wrapper') 2 // 建立 xhr 物件 3 let xhr = new XMLHttpRequest(); 4 // 建立連線 指定請求的方式 URL地址 5 // xhr.open(type, url, boolean); type:請求方式 url:請求地址 boolean : 同步/非同步 預設非同步請求 6 xhr.open('get', 'https://cnodejs.org/api/v1/topics');7 // 傳送請求 8 xhr.send(); 9 // 監聽事件 10 xhr.onreadystatechange = function () { 11 // 滿足條件 請求成功的 12 // xhr.status : http 狀態碼 xhr.status == 200 13 // xhr.readyState : 資料響應的狀態 xhr.readyState == 4 資料已就緒,返回 14 if (xhr.status == 200 && xhr.readyState == 4) {15 // 獲取資料 16 let result = JSON.parse(xhr.responseText); // json物件 : 有兩個方法 1. json 物件轉換為 json 字串 : JSON.stringify(obj) 2. json 字串 轉換為 json 物件 : JSON.parse(obj)
17 console.log(result); 18 renderHtml(result) 19 } 20 } 21 22 // 資料渲染 23 function renderHtml(data) { 24 let html = ''; 25 data.data.forEach(function (item, index) { 26 html += ` 27 <img src='${item.author.avatar_url}' > 28 <p>${item.title}</p> 29 ` 30 }) 31 wrapper.innerHTML = html 32 }