首先,我們需要創(chuàng)建一個 XMLHttpRequest 對象,這是實現(xiàn)原生 Ajax 的基礎(chǔ)。在發(fā)送 Ajax 請求之前,我們可以使用一系列的參數(shù)來配置我們的請求。其中,最常用的參數(shù)包括 URL、method、async、data 和 headers。
首先是 URL 參數(shù),用于指定請求的目標(biāo)地址。例如,我們想要從服務(wù)器獲取一條新聞的內(nèi)容,可以使用如下的代碼:
var xhr = new XMLHttpRequest(); xhr.open("GET", "http://example.com/news", true); xhr.send();
在這個例子中,我們將 URL 參數(shù)設(shè)置為 "http://example.com/news",表示我們向這個地址發(fā)送了一個 GET 請求。接下來是 method 參數(shù),用于指定請求的方法。常見的方法有 GET 和 POST。GET 用于獲取數(shù)據(jù),而 POST 用于提交數(shù)據(jù)。例如,如果我們要向服務(wù)器提交一個表單,可以使用如下的代碼:
var xhr = new XMLHttpRequest(); xhr.open("POST", "http://example.com/submit", true); xhr.send(formData);
在這個例子中,我們將 method 參數(shù)設(shè)置為 "POST",表示我們要向服務(wù)器提交數(shù)據(jù)。
接下來是 async 參數(shù),用于指定請求是否是異步的。異步請求不會阻塞瀏覽器,并且可以在請求發(fā)送后繼續(xù)執(zhí)行其他操作。如果我們希望在接收到服務(wù)器響應(yīng)后執(zhí)行某些操作,可以將 async 參數(shù)設(shè)置為 true。例如:
var xhr = new XMLHttpRequest(); xhr.open("GET", "http://example.com/data", true); xhr.onload = function() { // 請求完成后的回調(diào)函數(shù) console.log(xhr.responseText); }; xhr.send();
在這個例子中,我們將 async 參數(shù)設(shè)置為 true,表示請求是異步的。當(dāng)服務(wù)器響應(yīng)返回后,我們通過設(shè)置 xhr.onload 屬性來指定一個回調(diào)函數(shù),在這個函數(shù)中可以處理服務(wù)器返回的數(shù)據(jù)。
data 參數(shù)用于指定請求的數(shù)據(jù),通常用于 POST 請求。我們可以將需要提交的數(shù)據(jù)按照一定的格式傳遞給服務(wù)器。例如,我們要向服務(wù)器提交一個 JSON 對象,可以使用如下的代碼:
var xhr = new XMLHttpRequest(); xhr.open("POST", "http://example.com/submit", true); xhr.setRequestHeader("Content-Type", "application/json"); var data = { username: "john", password: "password123" }; xhr.send(JSON.stringify(data));
在這個例子中,我們使用 JSON.stringify() 方法將 JavaScript 對象轉(zhuǎn)換為 JSON 字符串,并將它作為請求的數(shù)據(jù)發(fā)送給服務(wù)器。
最后,headers 參數(shù)用于設(shè)置請求頭信息。請求頭可以包含一些額外的信息,比如用戶身份驗證信息、語言偏好等。我們可以通過調(diào)用 xhr.setRequestHeader() 方法來設(shè)置請求頭。例如:
var xhr = new XMLHttpRequest(); xhr.open("GET", "http://example.com/data", true); xhr.setRequestHeader("Authorization", "Bearer token123"); xhr.send();
在這個例子中,我們設(shè)置了一個 Authorization 請求頭,用于傳遞用戶的訪問令牌。
通過以上示例,我們了解了原生 Ajax 中常用的幾個參數(shù)。URL 參數(shù)用于指定請求的目標(biāo)地址,method 參數(shù)用于指定請求的方法,async 參數(shù)用于指定請求是否是異步的,data 參數(shù)用于指定請求的數(shù)據(jù),headers 參數(shù)用于設(shè)置請求頭信息。通過合理地使用這些參數(shù),我們可以靈活地控制我們的 Ajax 請求,實現(xiàn)各種不同的功能。