Response
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
* Some parts of this feature may have varying levels of support.
Note: This feature is available in Web Workers.
Giao diện Response của Fetch API biểu diễn phản hồi của một yêu cầu.
Bạn có thể tạo một đối tượng Response mới bằng constructor Response(), nhưng thường bạn sẽ gặp Response được trả về từ một thao tác API khác, chẳng hạn service worker FetchEvent.respondWith hoặc một lời gọi đơn giản tới fetch().
Constructor
Response()-
Tạo một đối tượng
Responsemới.
Thuộc tính thể hiện
Response.bodyRead only-
Một
ReadableStreamchứa nội dung thân phản hồi. Response.bodyUsedRead only-
Lưu một giá trị boolean cho biết phần thân phản hồi đã được dùng hay chưa.
Response.headersRead only-
Đối tượng
Headersgắn với phản hồi. Response.okRead only-
Một giá trị boolean cho biết phản hồi có thành công hay không, tức mã trạng thái nằm trong khoảng
200đến299. Response.redirectedRead only-
Cho biết phản hồi có phải là kết quả của chuyển hướng hay không, tức danh sách URL của nó có nhiều hơn một mục.
Response.statusRead only-
Mã trạng thái của phản hồi. (Mã thành công sẽ là
200.) Response.statusTextRead only-
Thông báo trạng thái tương ứng với mã trạng thái. (Ví dụ:
OKcho200.) Response.typeRead only-
Kiểu của phản hồi, ví dụ
basic,cors. Response.urlRead only-
URL của phản hồi.
Phương thức tĩnh
Response.error()-
Trả về một đối tượng
Responsemới gắn với lỗi mạng. Response.redirect()-
Trả về một phản hồi mới với URL khác.
Response.json()-
Trả về một đối tượng
Responsemới để trả về dữ liệu JSON đã cho.
Phương thức thể hiện
Response.arrayBuffer()-
Trả về một promise giải quyết với biểu diễn
ArrayBuffercủa phần thân phản hồi. Response.blob()-
Trả về một promise giải quyết với biểu diễn
Blobcủa phần thân phản hồi. Response.bytes()-
Trả về một promise giải quyết với biểu diễn
Uint8Arraycủa phần thân phản hồi. Response.clone()-
Tạo một bản sao của đối tượng
Response. Response.formData()-
Trả về một promise giải quyết với biểu diễn
FormDatacủa phần thân phản hồi. Response.json()-
Trả về một promise giải quyết với kết quả phân tích văn bản thân phản hồi dưới dạng
JSON. Response.text()-
Trả về một promise giải quyết với biểu diễn văn bản của phần thân phản hồi.
Ví dụ
>Tải một hình ảnh
Trong ví dụ fetch cơ bản của chúng tôi (chạy trực tiếp), chúng ta dùng một lời gọi fetch() đơn giản để lấy một hình ảnh và hiển thị nó trong phần tử <img>.
Lời gọi fetch() trả về một promise, promise này giải quyết thành đối tượng Response gắn với thao tác tải tài nguyên.
Bạn sẽ thấy rằng vì chúng ta đang yêu cầu một hình ảnh, chúng ta cần chạy Response.blob để phản hồi có đúng kiểu MIME.
const image = document.querySelector(".my-image");
fetch("flowers.jpg")
.then((response) => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.blob();
})
.then((blob) => {
const objectURL = URL.createObjectURL(blob);
image.src = objectURL;
})
.catch((error) => {
console.error("Error fetching the image:", error);
});
Bạn cũng có thể dùng constructor Response() để tạo đối tượng Response tùy chỉnh của riêng mình:
const response = new Response();
Lời gọi PHP
Ở đây chúng ta gọi một file chương trình PHP tạo ra chuỗi JSON và hiển thị kết quả dưới dạng một giá trị JSON.
// Hàm lấy JSON bằng PHP
const getJSON = async () => {
// Tạo đối tượng Response
const response = await fetch("getJSON.php");
if (response.ok) {
// Lấy giá trị JSON từ phần thân phản hồi
return response.json();
}
throw new Error("*** PHP file not found");
};
// Gọi hàm và ghi giá trị hoặc thông báo lỗi ra console
getJSON()
.then((result) => console.log(result))
.catch((error) => console.error(error));
Thông số kỹ thuật
| Specification |
|---|
| Fetch> # response-class> |