RequestInit
Từ điển RequestInit của Fetch API đại diện cho tập hợp các tùy chọn có thể được sử dụng để cấu hình fetch request.
Bạn có thể truyền đối tượng RequestInit vào hàm tạo Request(), hoặc trực tiếp vào lệnh gọi hàm fetch().
Bạn cũng có thể tạo Request với RequestInit và truyền Request vào lệnh gọi fetch() cùng với RequestInit khác. Nếu làm vậy và cùng một tùy chọn được đặt ở cả hai nơi, giá trị được truyền trực tiếp vào fetch() sẽ được sử dụng.
Thuộc tính phiên bản
attributionReportingOptional Đã lỗi thời-
Cho biết bạn muốn phản hồi của yêu cầu có thể đăng ký attribution source hoặc attribution trigger dựa trên JavaScript.
attributionReportinglà đối tượng chứa các thuộc tính:eventSourceEligible-
Giá trị boolean. Nếu đặt thành
true, phản hồi của yêu cầu đủ điều kiện để đăng ký attribution source. triggerEligible-
Giá trị boolean. Nếu đặt thành
true, phản hồi của yêu cầu đủ điều kiện để đăng ký attribution trigger.
bodyOptional-
Phần thân yêu cầu chứa nội dung cần gửi đến server, ví dụ trong yêu cầu
POSThoặcPUT. Nó được chỉ định là một phiên bản của bất kỳ loại nào sau đây: browsingTopicsOptional Đã lỗi thời-
Giá trị boolean chỉ định rằng các chủ đề đã chọn cho người dùng hiện tại nên được gửi trong header
Sec-Browsing-Topicsvới yêu cầu liên quan. cacheOptional-
Chế độ cache bạn muốn sử dụng cho yêu cầu. Có thể là một trong các giá trị:
default-
Trình duyệt tìm kiếm trong cache HTTP của mình phản hồi phù hợp với yêu cầu.
no-store-
Trình duyệt lấy tài nguyên từ server từ xa mà không kiểm tra cache trước và sẽ không cập nhật cache.
reload-
Trình duyệt lấy tài nguyên từ server từ xa mà không kiểm tra cache trước, nhưng sau đó sẽ cập nhật cache.
no-cache-
Trình duyệt tìm kiếm trong cache HTTP của mình. Nếu có kết quả khớp, trình duyệt sẽ thực hiện yêu cầu có điều kiện đến server từ xa.
force-cache-
Trình duyệt tìm kiếm trong cache HTTP. Nếu có kết quả khớp, dù còn mới hay cũ, nó sẽ được trả về từ cache.
only-if-cached-
Trình duyệt tìm kiếm trong cache HTTP. Thử nghiệm Nếu có kết quả khớp, nó sẽ được trả về từ cache. Nếu không có kết quả khớp, lỗi mạng được trả về.
credentialsOptional-
Kiểm soát xem trình duyệt có gửi thông tin xác thực cùng với yêu cầu không. Các giá trị có thể là:
omit-
Không bao giờ gửi thông tin xác thực trong yêu cầu hoặc đưa thông tin xác thực vào phản hồi.
same-origin-
Chỉ gửi và bao gồm thông tin xác thực cho các yêu cầu cùng nguồn gốc.
include-
Luôn bao gồm thông tin xác thực, ngay cả cho các yêu cầu nguồn gốc chéo.
Mặc định là
same-origin. duplexOptional Thử nghiệm-
Kiểm soát hành vi duplex của yêu cầu. Nếu có, nó phải có giá trị
half, nghĩa là trình duyệt phải gửi toàn bộ yêu cầu trước khi xử lý phản hồi.Tùy chọn này phải có mặt khi
bodylàReadableStream. headersOptional-
Bất kỳ header nào bạn muốn thêm vào yêu cầu, chứa trong đối tượng
Headershoặc đối tượng literal.Nhiều header được đặt tự động bởi trình duyệt và không thể đặt bởi script: đây được gọi là Forbidden request headers.
integrityOptional-
Chứa giá trị subresource integrity của yêu cầu.
Định dạng của tùy chọn này là
<hash-algo>-<hash-source>trong đó:<hash-algo>là một trong các giá trị:sha256,sha384, hoặcsha512<hash-source>là mã hóa Base64 của kết quả băm tài nguyên với thuật toán băm được chỉ định.
Mặc định là chuỗi rỗng.
keepaliveOptional-
Giá trị boolean. Khi đặt thành
true, trình duyệt sẽ không hủy bỏ yêu cầu liên quan nếu trang khởi tạo nó bị tải lại trước khi yêu cầu hoàn thành.Điều này giúp lệnh gọi
fetch()gửi phân tích ở cuối phiên ngay cả khi người dùng điều hướng khỏi hoặc đóng trang.Kích thước phần thân cho các yêu cầu
keepaliveđược giới hạn ở 64 kibibyte.Mặc định là
false. methodOptional-
Mặc định là
GET. modeOptional-
Đặt hành vi nguồn gốc chéo cho yêu cầu. Một trong các giá trị:
same-origin-
Không cho phép các yêu cầu nguồn gốc chéo. Kết quả là lỗi mạng.
cors-
Nếu yêu cầu là nguồn gốc chéo, nó sẽ sử dụng cơ chế Chia sẻ tài nguyên chéo nguồn gốc (CORS).
no-cors-
Vô hiệu hóa CORS cho các yêu cầu nguồn gốc chéo. Phản hồi sẽ opaque, nghĩa là các header và phần thân của nó không khả dụng cho JavaScript.
-
Chỉ được sử dụng bởi điều hướng HTML.
Mặc định là
cors. priorityOptional-
Chỉ định mức độ ưu tiên của fetch request so với các yêu cầu khác cùng loại. Phải là một trong:
high-
Fetch request ưu tiên cao.
low-
Fetch request ưu tiên thấp.
auto-
Không có sở thích người dùng về mức độ ưu tiên fetch.
Mặc định là
auto. privateTokenOptional-
Một đối tượng chứa các tùy chọn để khởi tạo thao tác private state token. Các thuộc tính có thể bao gồm:
issuers-
Mảng chuỗi chứa URL của các issuer mà bạn muốn chuyển tiếp redemption record cho.
operation-
Chuỗi đại diện cho loại thao tác token bạn muốn khởi tạo. Thuộc tính bắt buộc. Các giá trị có thể là:
token-request: Khởi tạo thao tác yêu cầu token.token-redemption: Khởi tạo thao tác đổi token.send-redemption-record: Khởi tạo thao tác gửi redemption record.
refreshPolicy-
Giá trị liệt kê chỉ định hành vi dự kiến khi redemption record chưa hết hạn đã được đặt trước đó.
none: Redemption record đã đặt trước đó nên được sử dụng. Đây là giá trị mặc định.refresh: Redemption record mới luôn được phát hành.
version-
Số chỉ định phiên bản giao thức mật mã. Thuộc tính bắt buộc. Hiện tại luôn đặt là
1.
redirectOptional-
Xác định hành vi của trình duyệt trong trường hợp server phản hồi với trạng thái chuyển hướng. Một trong:
follow: Tự động theo dõi chuyển hướng.error: Từ chối promise với lỗi mạng khi trạng thái chuyển hướng được trả về.manual: Trả về phản hồi với hầu hết các trường bị lọc để cho phép service worker lưu trữ phản hồi.
Mặc định là
follow. referrerOptional-
Một chuỗi chỉ định giá trị sử dụng cho header
Referercủa yêu cầu.Mặc định là
about:client. referrerPolicyOptional-
Một chuỗi đặt chính sách cho header
Referer. signalOptional-
Một
AbortSignal. Nếu tùy chọn này được đặt, yêu cầu có thể bị hủy bằng cách gọiabort()trênAbortControllertương ứng.
Ví dụ
>Truyền tùy chọn vào fetch()
Trong ví dụ này, chúng ta truyền các tùy chọn method, body và headers trực tiếp vào lệnh gọi hàm fetch():
async function post() {
const response = await fetch("https://example.org/post", {
method: "POST",
body: JSON.stringify({ username: "example" }),
headers: {
"Content-Type": "application/json",
},
});
console.log(response.status);
}
Truyền tùy chọn vào hàm tạo Request()
Trong ví dụ này, chúng ta tạo Request, truyền cùng tập hợp tùy chọn vào hàm tạo của nó, sau đó truyền yêu cầu vào fetch():
async function post() {
const request = new Request("https://example.org/post", {
method: "POST",
body: JSON.stringify({ username: "example" }),
headers: {
"Content-Type": "application/json",
},
});
const response = await fetch(request);
console.log(response.status);
}
Truyền tùy chọn vào cả Request() và fetch()
Trong ví dụ này, chúng ta tạo Request, truyền các tùy chọn method, headers và body vào hàm tạo của nó. Sau đó chúng ta truyền yêu cầu vào fetch() cùng với các tùy chọn body và referrer:
async function post() {
const request = new Request("https://example.org/post", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ username: "example1" }),
});
const response = await fetch(request, {
body: JSON.stringify({ username: "example2" }),
referrer: "",
});
console.log(response.status);
}
Trong trường hợp này, yêu cầu sẽ được gửi với các tùy chọn sau:
method: "POST"headers: {"Content-Type": "application/json"}body: '{"username":"example2"}'referrer: ""
Thông số kỹ thuật
| Thông số kỹ thuật |
|---|
| Fetch> # requestinit> |