Xhr Là Gì

XMLHttpRequest ( XHR) là gì? XMLHttpRequest là một trong những đối tượng JavaScript tích hòa hợp được thực hiện để truyền tài liệu giữa sever cùng thứ khách cơ mà không yêu cầu làm cho new tổng thể trang. khi sử dụng, XHRCửa Hàng chúng tôi có thể cập nhật trang dựa trên hành động của người tiêu dùng. lấy ví dụ như, một mối cung cấp cấp tin tức vô hạn. (Sau Lúc người tiêu dùng cuộn xuống chân trang, Cửa Hàng chúng tôi sẽ chỉ dẫn tận hưởng tìm nạp bài viết tiếp theo với nối dữ liệu vào trang). Sử dụng XHR, chúng tôi có thể triển khai cả thử khám phá đồng nhất và không đồng nhất. Tạo một XMLHttpRequestđối tượng. Cấu hình đối tượng cùng với chi tiết đề xuất. Gửi trải đời.

let request = new XMLHttpRequest(); Để cấu hình hưởng thụ, bạn có thể thực hiện openthủ tục của XMLHttpRequestđối tượng.

Bạn đang xem: Xhr là gì

request.open(method, URL, ) URL- Chuỗi URL để kinh nghiệm. Cũng hoàn toàn có thể là một đối tượng người sử dụng URL . async- Theo khoác định là như thế true. Nếu Shop chúng tôi đặt nó thành false, thì nó đang gửi một synchronoustận hưởng. user, password- Đăng nhập cùng mật khẩu đăng nhập mang lại cơ phiên bản HTTP. auth Các sendphương thức có thể được thực hiện nhằm gửi một đề nghị đến sever.

request.send(); load- Sự loadkhiếu nại được kích hoạt Khi XMLHttpRequesthoàn toàn thành công xuất sắc (ngay cả khi tâm lý HTTP. là 400 hoặc 500) với đánh giá được mua xuống vừa đủ.

statusText- HTTPhường thông báo tinh thần 200 → OK , 404 → Not Foundcùng vân vân

response - Đáp ứng yêu thương cầu

error- lúc yên cầu ko được thực hiện. Ví dụ: lỗi mạng, truy vấn bắt đầu chéo

xhr.onerror = function() console.log(`Unable khổng lồ make request`);;

let url = "https://medium.com/search?q=javascriptjeep";let request = new XMLHttpRequest();request.open("GET", url);request.onload = function() console.log(request.response);request.send(); Chúng ta rất có thể đặt thời gian hóng thưởng thức vào XMLHttpRequestđối tượng người dùng. Nếu tận hưởng không thành công xuất sắc vào thời hạn nhất định, những hiểu biết sẽ bị diệt cùng một timeoutsự khiếu nại sẽ tiến hành kích hoạt.

xhr.timeout = 10000; //time in milliseconds , actually 10s

let url = new URL("https://medium.com/search");url.searchParams.set("q", "JavaScript Jeep");request.open("GET", url);request.send();request.onload = function() console.log(request.response);

1. text → get as string2. arraybuffer → get as ArrayBuffer3. blob → get as Blob4. document → get as XML document5. json → get as JSON Trong trường hợp của Cửa Hàng chúng tôi, chúng tôi đang nhận ra một HTMLtư liệu dưới dạng đánh giá, bởi vậy Cửa Hàng chúng tôi cần đặt responseTypelà document.

let url = "https://medium.com/search?q=javascriptjeep";let request = new XMLHttpRequest();request.open("GET", url);request.onload = function() console.log(request.response);request.responseType = "document";request.send(); Trạng thái sẵn sàng chuẩn bị Chúng tôi rất có thể phạt thực trạng thái ngày nay của XMLHttpRequestđối tượng người dùng sử dụng ở trong readyStatetính. Ngoài ra, readystatechangesự kiện sẽ được kích hoạt khi tâm trạng của XMLHttpRequestđối tượng biến hóa.


*
Nguồn ảnh: Cộng đồng WHATWG

0 → Object created1 → xuất hiện method called2 → Response header received3 → Reponse is loading4 → Request is complete

Nếu họ yêu cầu bỏ bỏ thử khám phá đã có gửi, bạn cũng có thể sử dụng abortcách thức này.

Xem thêm: Những thông tin anh em nên biết để trở thành cao thủ soi kèo bóng đá

request.abort(); Chúng tôi có thể thực hiện setRequestHeader phương thức để đặt title tùy chỉnh theo đề nghị.

// syntaxrequest.setRequestHeader( name , value);

let request = new XMLHttpRequest();request.open("GET", url);request.setRequestHeader("Content-Type", "application/json");request.setRequestHeader("user-token", 123); Hình như, Lúc tiêu đề được đặt, công ty chúng tôi cấp thiết xóa title đó. Nếu bọn họ hotline setRequestHeader, giống nhau name, thì cực hiếm sẽ được sản xuất.

request.setRequestHeader("test", 123);request.setRequestHeader("test", 321);// header is test:123, 321 Gửi POSTtận hưởng cùng với dữ liệu Nếu họ yêu cầu gửi một POSTkinh nghiệm đến máy chủ với một số trong những tài liệu, ví dụ như hình ảnh hoặc dữ liệu biểu mẫu, thì bạn cũng có thể gửi dữ liệu dưới dạng tham số của sendcách làm của XMLHttpRequest.

Hãy để ý rằng họ có một biểu mẫu mã. Chúng tôi sẽ khởi tạo dữ liệu biểu mẫu mã từ kia.

let data = new FormData(document.forms<0>);let request = new XMLHttpRequest();request.open("POST", "http:myhệ thống.com/getResult");request.send(data);

Để theo dõi và quan sát quá trình cài đặt lên, công ty chúng tôi có thể sử dụng nhiều sự kiện gồm sẵn vào uploadđối tượng người sử dụng của XMLHttpRequest:

loadstart → upload started.progress → triggers periodically during the upload.abort → upload aborted.error → non-HTTP error.load → upload finished successfully.timeout → upload timed out (if timeout property is set)loadkết thúc → upload finished with either success or error

Gửi đòi hỏi CORS

Sử dụng XMLHttpRequest, chúng tôi có thể tiến hành các trải nghiệm xuất phát chéo. Đối với điều này, chúng ta nên đặt withCredentialslà false.

let xhr = new XMLHttpRequest();xhr.withCredentials = true;let url = "https://otherorigin.com/search?q=javascriptjeep";xhr.open("GET", url);xhr.send(); Tại sao bạn nên khuyến mãi ngay tôi Bạn có thể quyên góp cho tôi vào PayPal .