XMLHttpRequest: phương thức send()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Note: This feature is available in Web Workers, except for Service Workers.

Phương thức XMLHttpRequest send() gửi yêu cầu đến máy chủ.

Nếu yêu cầu là không đồng bộ (mặc định), phương thức này trả về ngay khi yêu cầu được gửi và kết quả được phân phối bằng cách sử dụng các sự kiện. Nếu yêu cầu là đồng bộ, phương thức này sẽ không trả về cho đến khi phản hồi đến nơi.

send() chấp nhận một tham số tùy chọn cho phép bạn chỉ định phần thân của yêu cầu; điều này chủ yếu được sử dụng cho các yêu cầu như PUT. Nếu phương thức yêu cầu là GET hoặc HEAD, tham số body bị bỏ qua và phần thân yêu cầu được đặt thành null.

Nếu không có tiêu đề Accept nào được thiết lập bằng cách sử dụng setRequestHeader(), một tiêu đề Accept với loại "*/*" (bất kỳ loại nào) sẽ được gửi.

Cú pháp

js
send()
send(body)

Tham số

body Optional

Một khối dữ liệu để gửi trong yêu cầu XHR. Đây có thể là:

Nếu không có giá trị nào được chỉ định cho body, giá trị mặc định null được sử dụng.

Cách tốt nhất để gửi nội dung nhị phân (ví dụ: trong tải tệp lên) là sử dụng một đối tượng TypedArray, DataView hoặc Blob kết hợp với phương thức send().

Giá trị trả về

Không có (undefined).

Ngoại lệ

InvalidStateError DOMException

Được ném nếu send() đã được gọi cho yêu cầu, và/hoặc yêu cầu đã hoàn tất.

NetworkError DOMException

Được ném nếu loại tài nguyên cần tải là một Blob, và phương thức không phải là GET.

Ví dụ: GET

js
const xhr = new XMLHttpRequest();
xhr.open("GET", "/server", true);

xhr.onload = () => {
  // Yêu cầu đã hoàn tất. Xử lý tại đây.
};

xhr.send(null);
// xhr.send('string');
// xhr.send(new Blob());
// xhr.send(new Int8Array());
// xhr.send(document);

Ví dụ: POST

js
const xhr = new XMLHttpRequest();
xhr.open("POST", "/server", true);

// Gửi thông tin tiêu đề phù hợp cùng với yêu cầu
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xhr.onreadystatechange = () => {
  // Gọi một hàm khi trạng thái thay đổi.
  if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
    // Yêu cầu đã hoàn tất. Xử lý tại đây.
  }
};
xhr.send("foo=bar&lorem=ipsum");
// xhr.send(new Int8Array());
// xhr.send(document);

Các đặc tả kỹ thuật

Thông số kỹ thuật
XMLHttpRequest
# the-send()-method

Tương thích trình duyệt

Xem thêm