一、通過onload注冊事件
// 1. 創建一個 xhr 對象
var xhr = new XMLHttpRequest();
// 2. 設置請求的方式和路徑
xhr.open('GET', '/time');
// 3. 發送請求
xhr.send(null);
// 4. 注冊事件
xhr.onload = function () {
// 通過 xhr 的 responseText 獲取到響應的響應體
console.log(this.responseText)
}
注意:如果是發送post方式的請求,需要在open和send中間設置請求頭,send中添加要傳遞的參數(有格式要求:=連接屬性和值;&連接不同的屬性)。
var xhr = new XMLHttpRequest()
xhr.open('POST', '/query-post')
// 設置 Content-Type 為 application/x-www-form-urlencoded,這行代碼不用死記硬背,去復制即可
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
// 需要提交到服務端的數據可以通過 send 方法的參數傳遞
// 格式:name=zhangsan&age=18
xhr.send('name=zhangsan&age=18')
xhr.onload = function () {
console.log(this.responseText)
}
二、通過onreadystatechange注冊事件
onload 是 HTML5 以后新增的方便獲取響應的事件,過去獲取瀏覽器返回內容的時候使用的是 onreadystatechange。
var xhr = new XMLHttpRequest()
// open 方法的第一個參數的作用就是設置請求的 method
xhr.open('POST', '/query-post')
// 設置 Content-Type 為 application/x-www-form-urlencoded,這行代碼不用死記硬背,去復制即可
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
// 需要提交到服務端的數據可以通過 send 方法的參數傳遞
// 格式:name=zhangsan&age=18
xhr.send('name=zhangsan&age=18')
// 更改事件為onreadystatechange
xhr.onreadystatechange = function () {
if (this.readyState === 4) {
// 后續邏輯......
}
}
