Đối tượng XMLHttpRequest (viết tắt là XHR) là một API có thể được sử dụng bởi JavaScript, Jscript, VBScript và một số ngôn ngữ phát triển ứng dụng Web khác.
Đối tượng XMLHttpRequest trong AJAX được sử dụng cho việc giao tiếp không đồng bộ giữa máy khách và máy chủ.
Nó thực hiện các hoạt động sau:
- Gửi dữ liệu từ máy khách đến máy chủ dưới nền (background).
- Nhận dữ liệu từ máy chủ.
- Cập nhật trang web mà không cần tải lại trang web.
Nội dung chính
Các thuộc tính của đối tượng XMLHttpRequest
Thuộc tính | Mô tả |
---|---|
onReadyStateChange | Nó được gọi bất cứ khi nào thuộc tính readystate bị thay đổi. Nó không được sử dụng với các yêu cầu đồng bộ. |
readyState |
Đại diện cho trạng thái của yêu cầu. Nó nằm trong khoảng từ 0 đến 4.
0 UNOPENED phương thức open() không được gọi. 1 OPENED open() được gọi nhưng send() không được gọi. 2 HEADERS_RECEIVED send() được gọi, và các tiêu đề và trạng thái có sẵn. 3 LOADING Tải xuống dữ liệu; responseText giữ dữ liệu. 4 DONE Thao tác hoàn tất. |
reponseText | Trả về phản hồi dưới dạng văn bản. |
responseXML | Trả về phản hồi dưới dạng XML. |
Các phương thức của đối tượng XMLHttpRequest
Các phương thức quan trọng của đối tượng XMLHttpRequest như sau:
Phương thức | Mô tả |
---|---|
void open(method, URL) | Mở yêu cầu chỉ định phương thức GET hoặc POST và URL. |
void open(method, URL, async) | Tương tự như trên và chỉ định bất đồng bộ hoặc không. |
void open(method, URL, async, username, password) | Giống như trên nhưng chỉ định tên người dùng và mật khẩu. |
void send() | Gửi yêu cầu GET. |
void send(string) | Gửi yêu cầu POST. |
setRequestHeader(header,value) | Thêm các thuộc tính vào tiêu đề yêu cầu. |
Tạo đối tượng XMLHttpRequest trong AJAX
Các trình duyệt hỗ trợ đối tượng XMLHttpRequest bao gồm: Chrome, FireFox, Safari, Opera và IE7+
Dưới đây là cú pháp để tạo đối tượng XMLHttpRequest trong AJAX:
<script> request = new XMLHttpRequest(); </script>
Với các phiên bản IE cũ hơn (chẳng hạn như IE5 và IE6) sử dụng đối tượng ActiveXObject:
<script> request = new ActiveXObject("Microsoft.XMLHTTP"); </script>
Để đảm bảo AJAX có thể hoạt động trên tất cả các trình duyệt bạn nên khai báo như sau:
<script> var request; if (window.XMLHttpRequest) { request = new XMLHttpRequest(); } else if (window.ActiveXObject) { request = new ActiveXObject("Microsoft.XMLHTTP"); } </script>
Xem ví dụ Ajax để hiểu rõ hơn về các sử dụng đối tượng XMLHttpRequest.