Response: thuộc tính redirected

Baseline Widely available

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

Note: This feature is available in Web Workers.

Thuộc tính chỉ đọc redirected của giao diện Response cho biết phản hồi có phải là kết quả của một yêu cầu mà bạn gửi và đã bị chuyển hướng hay không.

Note: Không nên kiểm tra redirected để ngăn chuyển hướng, vì tới lúc nhận được phản hồi thì việc chuyển hướng đã xảy ra rồi, và bạn có thể đã gửi yêu cầu tới một đích không mong muốn, có thể làm lộ thông tin nhạy cảm. Thay vào đó, bạn nên lọc ngay khi gọi fetch(). Xem ví dụ Disallowing redirects, trong đó điều này được thực hiện.

Giá trị

Một giá trị boolean là true nếu phản hồi cho biết yêu cầu của bạn đã bị chuyển hướng.

Ví dụ

Phát hiện chuyển hướng

Kiểm tra xem phản hồi có đến từ một yêu cầu đã bị chuyển hướng hay không chỉ đơn giản là kiểm tra cờ này trên đối tượng Response. Trong đoạn mã dưới đây, một thông báo văn bản được chèn vào một phần tử khi có chuyển hướng xảy ra trong quá trình fetch. Tuy nhiên, cách này không an toàn bằng việc từ chối chuyển hướng ngay khi chúng không mong muốn, như mô tả trong Disallowing redirects bên dưới.

Thuộc tính url trả về URL cuối cùng sau các chuyển hướng.

js
fetch("awesome-picture.jpg")
  .then((response) => {
    const elem = document.getElementById("warning-message-box");
    elem.textContent = response.redirected ? "Unexpected redirect" : "";
    // URL cuối cùng thu được sau các chuyển hướng
    console.log(response.url);
    return response.blob();
  })
  .then((imageBlob) => {
    const imgObjectURL = URL.createObjectURL(imageBlob);
    document.getElementById("img-element-id").src = imgObjectURL;
  });

Không cho phép chuyển hướng

Kiểm tra redirected là cách tệ để ngăn chuyển hướng, vì việc chuyển hướng đã xảy ra rồi. Thay vào đó, bạn nên đặt chế độ redirect thành "error" trong tham số options khi gọi fetch(), như sau:

js
fetch("awesome-picture.jpg", { redirect: "error" })
  .then((response) => response.blob())
  .then((imageBlob) => {
    const imgObjectURL = URL.createObjectURL(imageBlob);
    document.getElementById("img-element-id").src = imgObjectURL;
  });

Thông số kỹ thuật

Thông số kỹ thuật
Fetch
# ref-for-dom-response-redirected①

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

Xem thêm