在AJAX中,數(shù)字4表示HTTP請求已完成,而數(shù)字200表示HTTP響應(yīng)已成功。
當(dāng)AJAX請求被發(fā)送到服務(wù)器時(shí),會(huì)通過HTTP協(xié)議進(jìn)行通信。HTTP協(xié)議有很多狀態(tài)碼,其中最常見的是狀態(tài)代碼4xx和2xx。當(dāng)服務(wù)器返回的狀態(tài)代碼以4開頭時(shí),表示有錯(cuò)誤發(fā)生,而以2開頭的狀態(tài)代碼表示成功。
讓我們通過幾個(gè)例子來說明這個(gè)概念:
// 發(fā)送一個(gè)GET請求 const xhr = new XMLHttpRequest(); xhr.open('GET', 'https://api.example.com/data', true); xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { console.log('數(shù)據(jù)請求成功!'); } };
在上面的例子中,當(dāng)我們發(fā)送一個(gè)GET請求到服務(wù)器時(shí),如果服務(wù)器成功響應(yīng)并返回狀態(tài)碼200,那么就表示數(shù)據(jù)請求成功。我們可以通過檢查xhr對象的readyState屬性是否為4,以及status屬性是否為200來判斷請求和響應(yīng)是否完成。
另一個(gè)例子是發(fā)送一個(gè)POST請求來保存用戶輸入的數(shù)據(jù):
// 發(fā)送一個(gè)POST請求 const xhr = new XMLHttpRequest(); xhr.open('POST', 'https://api.example.com/save', true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.send(JSON.stringify({name: 'John', age: 30})); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { console.log('數(shù)據(jù)保存成功!'); } };
在這個(gè)示例中,我們發(fā)送了一個(gè)POST請求來保存用戶輸入的數(shù)據(jù)。同樣,當(dāng)服務(wù)器成功接收并處理了這個(gè)請求,并返回狀態(tài)碼200時(shí),表示數(shù)據(jù)保存成功。
無論是GET請求還是POST請求,當(dāng)我們接收到狀態(tài)碼為200的響應(yīng)時(shí),我們可以確信請求已經(jīng)成功完成,并且我們可以在響應(yīng)的數(shù)據(jù)中獲取到我們期望的結(jié)果。
總的來說,數(shù)字4表示HTTP請求已完成,而數(shù)字200表示HTTP響應(yīng)已成功。這些狀態(tài)碼對于AJAX請求的發(fā)送和響應(yīng)非常重要,可以幫助我們判斷請求是否成功以及如何處理返回的數(shù)據(jù)。