Ajax基礎知識

2021-09-26 08:56:10 字數 1606 閱讀 9898

首先ajax的執行環境必須實在伺服器下的

首先需要建立乙個ajax物件var xhr = new xmlhttprequest()告訴ajax物件以什麼方式傳送請求,要想哪傳送請求xhr.open('get',url)傳送請求xhr.send()獲取伺服器端響應客戶端的資料xhr.onload=()=>使用get傳遞請求引數:將引數放到請求位址的後面一起傳遞過去,xhr.open('get', 'http://localhost:3000/get?username=zhangsan&age=25);處理伺服器端的響應:如果傳過來的是字串可以直接使用,如果是json型別的需要使用json.parse(xhr.reponsetext)進行處理後再使用,否則預設的會是字串型別

ajax狀態碼,狀態碼有5個,0,1,2,3,4。使用xhr.redaystate可以獲取ajax的狀態碼(方法不用帶括號)

0:建立好了ajax物件,還未初始化,就是還沒呼叫open()

1:請求已經連線,但是還沒有傳送,就是還沒有呼叫send()

2:請求以進傳送

3:請求正在處理中,通常響應中已經有部分資料可以用了

4:響應已經完成,可以獲取並使用伺服器的響應了

onreadystatechange事件,當ajax狀態碼發生變化時自動觸發該事件,再事件處理函式中,可以獲取狀態碼並對其進行判斷,當狀態嗎為4時就可以通過xhr.responsetext獲取伺服器端的響應資料了

xhr.readystatechange=function()};

ajax錯誤處理

1,網路暢通,伺服器端能接受到請求,伺服器端返回的結果不是預期結果。處理:可以判斷伺服器端返回的狀態碼,分別進行處理,xhr.status獲取http狀態碼,注意是http狀態碼

2,網路暢通,伺服器端沒有接受到請求,返回404狀態碼。處理檢查請求位址是否錯誤

3,網路暢通,伺服器端能接受到請求,伺服器端返回500狀態碼。處理伺服器端發生錯誤,找後端程式設計師進行溝通

4,網路中斷,請求無法傳送到伺服器端。處理會觸發xhr物件下面的onerror事件,在onerror事件處理函式中對錯誤進行處理 xhr.onerror=function()

**問題:**在低版本的 ie 瀏覽器中,ajax 請求有嚴重的快取問題,即在請求位址不發生變化的情況下,只有第一次請求會真正傳送到伺服器端,後續的請求都會從瀏覽器的快取中獲取結果。即使伺服器端的資料更新了,客戶端依然拿到的是快取中的舊資料

**解決方案:**在請求位址的後面加請求引數,保證每一次請求中的請求引數的值不相同。

xhr.open('get', '' + math.random());

AJAX基礎知識

新建xmlhttprequest物件 try catch error 開啟要傳送的位址通道 request.open get 位址,同步 非同步 給xmlhttprequest物件增加偵聽器,用來偵聽各種情況,包括各種鏈結狀態 request.addeventlistener load 偵聽函式 傳...

Ajax程式設計 Ajax的基礎知識

06.伺服器端響應的資料格式 07.請求引數的傳遞 08.獲取服務端響應的另一種方式 09.ajax錯誤處理 10.低版本瀏覽器的快取問題 11.同步非同步概述 12.ajax封裝 三 模板引擎 四 formdata 物件 五 二進位制檔案 六 ajax請求限制 七 ajax 方法 八 restfu...

AJAX基礎知識學習筆記

下面就是在對ajax基礎學習的總結。注意 和樣式不能相容低版本ie 通過ajax獲取命中提示內容 document.getelementbyid keyword oninput function 操作發出請求 xhr.send 處理響應結果 建立物件 ie7 和其他瀏覽器都支援 xmlhttpreq...