HttpRequest XML
Tất cả các trình duyệt hiện đại đều có đối tượng XMLHttpRequest được tích hợp sẵn để yêu cầu dữ liệu từ máy chủ.
Đối tượng XMLHttpRequest
Đối tượng XMLHttpRequest có thể được sử dụng để yêu cầu dữ liệu từ máy chủ web.
Đối tượng XMLHttpRequest là giấc mơ của các nhà phát triển , bởi vì bạn có thể:
- Cập nhật trang web mà không cần tải lại trang
- Yêu cầu dữ liệu từ máy chủ - sau khi trang tải xong
- Nhận dữ liệu từ máy chủ - sau khi trang tải xong
- Gửi dữ liệu đến máy chủ - trong nền
Ví dụ về XMLHttpRequest
Khi bạn nhập một ký tự vào trường nhập bên dưới, một XMLHttpRequest được gửi đến máy chủ và một số gợi ý tên được trả về (từ máy chủ):
Thí dụ
Ví dụ trên được giải thích trong các chương AJAX của hướng dẫn này.
Gửi một XMLHttpRequest
Cú pháp JavaScript phổ biến để sử dụng đối tượng XMLHttpRequest trông giống như sau:
Thí dụ
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Typical action to be performed when the document is ready:
document.getElementById("demo").innerHTML = xhttp.responseText;
}
};
xhttp.open("GET", "filename", true);
xhttp.send();
Giải thích ví dụ
Dòng đầu tiên trong ví dụ trên tạo một đối tượng XMLHttpRequest :
var xhttp = new XMLHttpRequest();
Thuộc tính onreadystatechange chỉ định một hàm sẽ được thực thi mỗi khi trạng thái của đối tượng XMLHttpRequest thay đổi:
xhttp.onreadystatechange = function()
Khi thuộc tính readyState là 4 và thuộc tính trạng thái là 200, phản hồi đã sẵn sàng:
if (this.readyState == 4 && this.status == 200)
Thuộc tính responseText trả về phản hồi của máy chủ dưới dạng chuỗi văn bản.
Chuỗi văn bản có thể được sử dụng để cập nhật một trang web:
document.getElementById("demo").innerHTML = xhttp.responseText;
Bạn sẽ tìm hiểu thêm nhiều điều về đối tượng XMLHttpRequest trong các chương AJAX của hướng dẫn này.
Phiên bản cũ của Internet Explorer (IE5 và IE6)
Phiên bản cũ của Internet Explorer (IE5 và IE6) không hỗ trợ đối tượng XMLHttpRequest.
Để xử lý IE5 và IE6, hãy kiểm tra xem trình duyệt có hỗ trợ đối tượng XMLHttpRequest hay không, nếu không hãy tạo một ActiveXObject:
Thí dụ
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
}
else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}