jQuery ajax - phương thức getJSON()
Mô hình
Sử dụng yêu cầu AJAX để lấy dữ liệu JSON và hiển thị kết quả:
$("button").click(function(){ $.getJSON("demo_ajax_json.js",function(result){ $.each(result, function(i, field){ $("div").append(field + " "); ); ); );
Định nghĩa và cách sử dụng
Tải dữ liệu JSON thông qua yêu cầu HTTP GET.
Trong jQuery 1.2, bạn có thể tải dữ liệu JSON từ các域 khác bằng cách sử dụng hàm回调 JSONP, như "myurl?callback=?". jQuery sẽ tự động thay thế ? bằng tên hàm chính xác để thực hiện hàm回调. Lưu ý: Mã sau này sẽ được thực hiện trước khi hàm回调 này được thực hiện.
Cú pháp
jQuery.getJSON(url,data,success(data,status,xhr))
Tham số | Mô tả |
---|---|
url | Bắt buộc. Định nghĩa URL nào sẽ gửi yêu cầu. |
data | Chọn. Định nghĩa dữ liệu kèm theo yêu cầu gửi lên máy chủ. |
success(data,status,xhr) |
Tùy chọn. Định nghĩa hàm chạy khi yêu cầu thành công. Các tham số bổ sung:
|
Giải thích chi tiết
Hàm này là viết tắt của hàm Ajax, tương đương với:
$.ajax({ url: url, data: data, success: callback, dataType: json );
Dữ liệu gửi lên máy chủ có thể được thêm vào URL sau dạng chuỗi tìm kiếm. Nếu data Nếu giá trị của tham số là đối tượng (bản đồ), nó sẽ được chuyển đổi thành chuỗi và mã hóa URL trước khi thêm vào URL.
Chuyển giao cho callback Dữ liệu trả về có thể là đối tượng JavaScript hoặc mảng được định nghĩa theo cấu trúc JSON, và được phân tích bằng phương pháp $.parseJSON().
Bài mẫu
Tải dữ liệu JSON từ test.js và hiển thị dữ liệu trong trường name của JSON dữ liệu:
$.getJSON("test.js", function(json){ alert("Dữ liệu JSON: " + json.users[3].name); );
Các ví dụ khác
Ví dụ 1
Tải 4 bức ảnh mới nhất về mèo từ API JSONP của Flickr:
Mã HTML:
<div id="images"></div>
Mã jQuery:
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne? tags=cat&tagmode=any&format=json&jsoncallback=?", function(data){ $.each(data.items, function(i,item){ $("<img/>").attr("src", item.media.m).appendTo("#images"); if ( i == 3 ) return false; ); );
Ví dụ 2
Tải dữ liệu JSON từ test.js, thêm tham số, hiển thị dữ liệu trong trường name của JSON dữ liệu:
$.getJSON("test.js", { name: "Bill", time: "2pm" }, function(json){ alert("Dữ liệu JSON: " + json.users[3].name); );