Ví dụ sau đây sẽ minh họa cách một trang web có thể giao tiếp với máy chủ web trong khi người dùng nhập các ký tự vào trường nhập liệu
Ví dụ
Bắt đầu nhập tên vào trường nhập bên dưới
gợi ý
Ví dụ giải thích
Trong ví dụ trên, khi người dùng nhập một ký tự vào trường nhập liệu, một hàm có tên "showHint[]" sẽ được thực thi
Chức năng được kích hoạt bởi sự kiện onkeyup
Đây là mã HTML
Ví dụ
Bắt đầu nhập tên vào trường nhập bên dưới
Tên.
Đề xuất.
Run example »
giải thích mã
Trước tiên, hãy kiểm tra xem trường đầu vào có trống không [chuỗi. chiều dài == 0]. Nếu đúng như vậy, hãy xóa nội dung của trình giữ chỗ txtHint và thoát khỏi chức năng
❮ Các phương thức AJAX của jQuery
Ví dụ
Gửi yêu cầu HTTP GET tới một trang và nhận lại kết quả
$["nút"]. click[function[]{
$. get["demo_test. asp", chức năng[dữ liệu, trạng thái]{
alert["Dữ liệu. " + dữ liệu + "\nTrạng thái. " + status];
}];
}];
Định nghĩa và cách sử dụng
$. phương thức get[] tải dữ liệu từ máy chủ bằng yêu cầu HTTP GET
ví dụ
Yêu cầu "kiểm tra. php", nhưng bỏ qua kết quả trả về
Yêu cầu "kiểm tra. php" và gửi một số dữ liệu bổ sung cùng với yêu cầu [bỏ qua kết quả trả về]
$. nhận ["kiểm tra. php", { tên. "Donald", thị trấn. "Thị trấn vịt" }];
Yêu cầu "kiểm tra. php" và chuyển mảng dữ liệu tới máy chủ [bỏ qua kết quả trả về]
$. nhận ["kiểm tra. php", { 'màu[]'. ["Đỏ lục lam"] }];
Yêu cầu "kiểm tra. php" và thông báo kết quả của yêu cầu
$. nhận ["kiểm tra. php", function[data]{
alert["Dữ liệu. " + dữ liệu];
}];
cú pháp
$. get[URL,dữ liệu,hàm[dữ liệu,trạng thái,xhr],kiểu dữ liệu]
Tham sốDescriptionURLBắt buộc. Chỉ định URL bạn muốn yêu cầu dữ liệuTùy chọn. Chỉ định dữ liệu để gửi đến máy chủ cùng với chức năng yêu cầu [dữ liệu, trạng thái, xhr] Tùy chọn. Chỉ định một chức năng sẽ chạy nếu yêu cầu thành công
Thông số bổ sung.
- dữ liệu - chứa dữ liệu kết quả từ yêu cầu
- status - chứa trạng thái của yêu cầu ["success", "notmodified", "error", "timeout" hoặc "parsererror"]
- xhr - chứa đối tượng XMLHttpRequest
Theo mặc định, jQuery thực hiện đoán tự động.
Các loại có thể.
- "xml" - Một tài liệu XML
- "html" - HTML dưới dạng văn bản thuần túy
- "văn bản" - Một chuỗi văn bản thuần túy
- "script" - Chạy phản hồi dưới dạng JavaScript và trả về dưới dạng văn bản thuần túy
- "json" - Chạy phản hồi dưới dạng JSON và trả về một đối tượng JavaScript
- "jsonp" - Tải trong một khối JSON bằng JSONP. Sẽ thêm một "?callback=?"
❮ Các phương thức AJAX của jQuery
Hàm gọi lại được thực thi nếu yêu cầu thành công. Bắt buộc nếu cung cấp
0, nhưng bạn có thể sử dụng
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
1 hoặc
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
2 làm trình giữ chỗ
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
loại dữ liệu
Loại.
Loại dữ liệu mong đợi từ máy chủ. Mặc định. Đoán thông minh [xml, json, tập lệnh, văn bản, html]
phiên bản thêm. 1. 12 và 2. 2
cài đặt
Loại.
Một tập hợp các cặp khóa/giá trị cấu hình yêu cầu Ajax. Tất cả các thuộc tính ngoại trừ
3 là tùy chọn. Có thể đặt mặc định cho bất kỳ tùy chọn nào với $. cài đặt ajax[]. Xem danh sách đầy đủ tất cả các cài đặt. Tùy chọn loại sẽ tự động được đặt thành$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
4$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Đây là một hàm Ajax tốc ký, tương đương với
1
2
3
4
5
6
$.ajax[{
url: url,
data: data,
success: success,
dataType: dataType
}];
Hàm gọi lại
5 được truyền dữ liệu được trả về, dữ liệu này sẽ là phần tử gốc XML, chuỗi văn bản, tệp JavaScript hoặc đối tượng JSON, tùy thuộc vào loại MIME của phản hồi. Nó cũng được chuyển trạng thái văn bản của phản hồi
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Kể từ jQuery 1. 5, hàm gọi lại
5 cũng được chuyển a [trong jQuery 1. 4, nó đã được thông qua đối tượng
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
7]. Tuy nhiên, vì các yêu cầu JSONP và tên miền chéo GET không sử dụng XHR, nên trong những trường hợp đó, các tham số
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
8 và
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
9 được chuyển cho lệnh gọi lại thành công là không xác định
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Hầu hết các triển khai sẽ chỉ định trình xử lý thành công
1
2
3
4
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Ví dụ này tìm nạp đoạn mã HTML được yêu cầu và chèn đoạn mã đó vào trang
Đối tượng jqXHR
Kể từ jQuery 1. 5, tất cả các phương thức Ajax của jQuery đều trả về một siêu đối tượng của đối tượng
20. Đối tượng jQuery XHR này, hay "jqXHR," được trả về bởi
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
21 triển khai giao diện Promise, cung cấp cho nó tất cả các thuộc tính, phương thức và hành vi của Promise [xem Đối tượng bị hoãn để biết thêm thông tin].
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
22 [đối với thành công],
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
23 [đối với lỗi] và
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
24 [đối với hoàn thành, cho dù thành công hay lỗi; được thêm vào trong jQuery 1. 6] các phương thức lấy một đối số hàm được gọi khi yêu cầu kết thúc. Để biết thông tin về các đối số mà hàm này nhận được, hãy xem phần của tài liệu
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
25
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Giao diện Promise cũng cho phép các phương thức Ajax của jQuery, bao gồm
21, xâu chuỗi nhiều lệnh gọi lại
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
27,
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
28 và
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
29 trên một yêu cầu và thậm chí chỉ định các lệnh gọi lại này sau khi yêu cầu có thể đã hoàn thành. Nếu yêu cầu đã hoàn thành, cuộc gọi lại sẽ được kích hoạt ngay lập tức
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Thông báo Khấu hao
Các phương thức gọi lại
30,
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
31 và
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
32 đã bị xóa kể từ jQuery 3. 0. Bạn có thể sử dụng
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
22,
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
23 và
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
24 để thay thế
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Ghi chú bổ sung
- Do các hạn chế về bảo mật của trình duyệt, hầu hết các yêu cầu "Ajax" đều phải tuân theo cùng một chính sách gốc;
- Nếu một yêu cầu với jQuery. get[] trả về một mã lỗi, nó sẽ bị lỗi âm thầm trừ khi tập lệnh cũng được gọi là mã lỗi toàn cầu. phương thức ajaxError[]. Ngoài ra, kể từ jQuery 1. 5, phương thức
36 của đối tượng$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
8 được trả về bởi jQuery. get[] cũng có sẵn để xử lý lỗi$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
- Các yêu cầu tập lệnh và JSONP không phải tuân theo các hạn chế về chính sách gốc giống nhau
ví dụ
Yêu cầu kiểm tra. trang php, nhưng bỏ qua kết quả trả về
1
3
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Yêu cầu kiểm tra. php và gửi một số dữ liệu bổ sung [trong khi vẫn bỏ qua kết quả trả về]
1
2
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Truyền mảng dữ liệu đến máy chủ [trong khi vẫn bỏ qua kết quả trả về]
1
3
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Thông báo kết quả từ yêu cầu kiểm tra. php [HTML hoặc XML, tùy thuộc vào nội dung được trả về]
1
2
3
4
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Thông báo kết quả từ yêu cầu kiểm tra. cgi với tải trọng dữ liệu bổ sung [HTML hoặc XML, tùy thuộc vào nội dung được trả về]
1
2
3
4
5
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Get the test.php page contents, which has been returned in json format [], and add it to the page.
1
2
3
4
5
6
$.get[ "ajax/test.html", function[ data ] {
$[ ".result" ].html[ data ];
alert[ "Load was performed." ];
}];
Nhận một trang khác trên cùng một tên miền. Đầu ra để điều khiển cả dữ liệu được trả về và loại dữ liệu được trả về