1. 程式人生 > 其它 >ajax (資料請求) 很重要

ajax (資料請求) 很重要

   開發專案:             靜態網站: 沒有牽扯到資料請求 介面呼叫               動態網站: 資料的請求渲染
        請求資料:             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         }