Object XMLHttpRequest là gì?

Object XMLHttpRequest

AJAX được xây dựng trên object XMLHttpRequest, cái được sử dụng để gửi các yêu cầu không đồng bộ từ máy
khách tới máy chủ trên HTTP. Một request object được khởi tạo sử dụng object constructor sau:

let xhr = new XMLHttpRequest()

nơi xhr là biến cái lưu giữ request object. Một khi request object được khởi tạo, nó có thể mở một kết nối
tới máy chủ, yêu cầu dữ liệu, và xử lí trả lời máy chủ. Ảnh dưới liệt kê một vài phương thức request object
phổ biến.
request object
Các yêu cầu bắt đầu với phương thức open() định nghĩa nơi nào để đệ trình một yêu cầu và yêu cầu đó nên được xử lí như thế nào. Phát biểu sau sử dụng phương thức GET để mở một yêu cầu không đồng bộ giữa máy khách và file submit.pl trên máy chủ:

let xhr = new XMLHttpRequest();
xhr.open(“get”, “submit.pl&id=41088”)

Chú ý rằng dữ liệu yêu cầu được gắn vào URL như một chuỗi truy vấn. Vị trí của tài nguyên được định nghĩa tương đối
với vị trí của trang. Trong trường hợp này, file submit.pl được cho là ở trong cùng thư mục như trang web. Cho vị trí
khác, bạn sẽ cần chỉ ra URL hoàn chỉnh. Theo mặc định, các yêu cầu là không đồng bộ, nhưng bạn có thể thiết lập tham
số async thành false, thiết lập một yêu cầu đồng bộ như trong phát biếu sau, cái làm chương trình dừng lại khi nó chờ một trả lời từ máy chủ:

xhr.open(“get”, “submit.pl&id=41088”, false)

Trong hầu hết trường hợp, bạn sẽ sử dụng một kết nối không đồng bộ để rằng ứng dụng có thể tiếp tục mà không phải chờ
cho một trả lời.
Chú ý: Các request objects tuân thủ same-origin policy bắt buộc với các cookies và các dòng dữ liệu server khác để rằng bất cứ tài nguyên được yêu cầu phải nằm trên cùng domain, cổng và đường dẫn như trang yêu cầu.
Một khi yêu cầu đã được định nghĩa, nó được gửi tới server sử dụng phương thức send():

xhr.send(content)

nơi content là nội dung được gửi tới tài nguyên sẽ được sử dụng để xử lí yêu cầu. Một giá trị content chỉ được yêu cầu nếu yêu cầu sử dụng phương thức POST cái lưu giữ dữ liệu trong thân của thông điệp yêu cầu. Code sau sử dụng phương thức POST để mở và gửi một giá trị id tới một server script, lưu giữ text “id541088” như một dòng trong thân thông điệp:

xhr.open(“post”, “submit.pl”);
xhr.send(“id=41088”);

Nếu yêu cầu sử dụng phương thức GET hay không cần bao gồm dữ liệu trong thân thông điệp, thiết lập giá trị content thành null như trong biểu thức sau:

xhr.send(null)

Chia sẻ