Nhập môn AJAX (10)

Đối tượng XMLHttpRequest – Phân tích các đặc tính – Phương thức và thuộc tính

Phân tích các đặc tính của XMLHttpRequest:

Các phương thức và thuộc tính

Danh mục sau chỉ ra các phương thức điển hình của đối tượng XMLHttpRequest:

abort() Hủy request hiện thời.

getAllResponseHeaders() Trả về tất cả các response header cho HTTP request dưới dạng cặp key/value.

getResponseHeader(“header”) Trả về giá trị kiểu string của header xác định.

open(“method”, “url”) Thiết lập giai đoạn cho một lời gọi tới server. Tham số của method có thể là GET, POST, hay PUT. Tham số url có thể là quan hệ hay trực tiếp. Phương thức này còn có 3 tham số tùy chọn.

send(content) Gửi request tới server.

setRequestHeader(“header”, “value”) Thiết lập header xác định cho giá trị cung cấp. open() phải được gọi trước khi cố gắng thiết lập bất kỳ một header nào.

Bây giờ ta xét cụ thể các phương thức này:

  • void open(string method, string url, boolean asynch, string username, string password): Phương thức này thiết lập một phiên gọi tới server. Ý nghĩa của nó này là khởi tạo một request. Nó có hai tham số yêu cầu và ba tham số tùy chọn; ta phải cung cấp đặc tả của phương thức được triệu gọi (GET, POST, hay PUT) và địa chỉ URL của tài nguyên được gọi. Cũng có thể truyền một biến chỉ báo kiểu Boolean, xác định việc truyền là bất đồng bộ – giá trị mặc định là true, nghĩa là các request luôn bất đồng bộ theo mặc định. Nếu truyền một giá trị false, quá trình xử lí sẽ phải đợi cho đến khi có phản hồi từ server. Việc truyền dữ liệu bất đồng bộ là một lợi thế của việc dùng Ajax, vì vậy thiết lập tham số này ở giá trị false đã thay đổi mục đích việc sử dụng XMLHttpRequest. Ta thấy nó rất hữu ích trong một số trường hợp chẳng hạn như chứng thực người dùng (validating user) trong khi trang web của không hề bị thay đổi. Hai tham số cuối tùy chọn, cho phép sử dụng username và password.
  • void send(content): Phương thức này thực hiện gửi request tới server. Nếu request được khai báo bất đồng bộ, kết quả được trả về ngay, còn không nó sẽ đợi cho tới khi nhận được response từ server. Tham số có thể là một thể hiện của một đối tượng DOM, một luồng dữ liệu vào (input stream), hay một kiểu string. Nội dung truyền cho phương thức này được gửi đi như một phần trong request.
  • void setRequestHeader(string header, string value): Phương thức thiết lập giá trị cho phần header đã cho trong HTTP request. Tham số bao gồm một biến kiểu string biểu thị header được thiết lập và một string khác biểu diễn giá trị để thay thế trong header. Chú ý là nó cần phải được gọi trước khi gọi đến open(). Trong hầu hết các phương thức thì cặp open() và send() thường xuyên được gọi.
  • void abort(): Phương thức này rất dễ hiểu, nó sẽ hủy request.
  • string getAllResponseHeaders(): Trả về một biến kiểu string chứa response header của HTTP request. Header bao gồm các trường Content-Length, Date, và URI.
  • string getResponseHeader(string header): Phương thức này tương tự như getAllResponseHeaders(); ngoại trừ việc nó nhận một tham số biểu diễn giá trị xác định header mà ta cấn đón bắt, giá trị trả về cũng có kiểu string.

Ngoài những phương thức chuẩn này, đối tượng XMLHttpRequest còn có các thuộc tính được liệt kê sau đây. Anh em chú ý ta sẽ phải sử dụng các thuộc tính mở rộng này khi làm việc với XMLHttpRequest.

onreadystatechange Bộ xử lý sự kiện cho một sự kiện phát sinh mỗi khi có sự thay đổi trạng thái.

readyState Trạng thái của request. Có 5 giá trị là
0 = uninitialized,1 = loading, 2 = loaded, 3 = interactive, và 4 = complete.

responseText Response trả về từ server dưới dạng string.

responseXML Response trả về từ server dưới dạng XML. Đối tượng này có thể được phân tách và khảo sát như một đối tượng tài liệu DOM.

status Mã trạng thái HTTP từ server (chẳng hạn 200 nếu không có lỗi, 404 cho lỗi Not Found, …).

statusText Thông điệp của mã trạng thái HTTP (chẳng hạn OK hay Not Found, …).