Có sự khác biệt nào trong hai cuộc gọi này không? Nếu bạn sử dụng getJSON, bạn vẫn phải khai báo format=json
trong url ...
Và bạn có thể làm tương tự trong $.get()
và lặp qua đối tượng JSON.
Hoặc tôi có phải ra khỏi đây không?
Có sự khác biệt nào trong hai cuộc gọi này không? Nếu bạn sử dụng getJSON, bạn vẫn phải khai báo format=json
trong url ...
Và bạn có thể làm tương tự trong $.get()
và lặp qua đối tượng JSON.
Hoặc tôi có phải ra khỏi đây không?
Hai đoạn sau là tương đương:
$.get("/some/url", {data: "value"}, function(json) {
// use json here
}, "json")
$.getJSON("/some/url", {data: "value"}, function(json) {
// use json here
});
Nói rằng một yêu cầu là cho JSON
nghĩa hai điều:
Accept: application/json
Một số khung bên máy chủ (như Rails) tự động phát hiện tiêu đề Accept
và xử lý yêu cầu một cách thích hợp. Nếu bạn đang sử dụng một khung công tác khác hoặc tự tạo khung của riêng mình, bạn có thể kiểm tra tiêu đề Accept
để phát hiện định dạng (thay vì kiểm tra các tham số).
Tôi cũng nên chỉ ra rằng lý do giải pháp tiêu đề Chấp nhận được thêm vào là để phục vụ các khung công tác xử lý nó một cách duyên dáng, làm cho giao tiếp giữa jQuery và các khung công tác như vậy (ví dụ Rails) liền mạch. –
Tôi nghĩ tài liệu giải thích rõ ràng!
http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype
tải từ xa trang sử dụng một yêu cầu HTTP GET.
http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback
tải JSON dữ liệu sử dụng một yêu cầu HTTP GET.
Hãy nhớ rằng, đây chỉ là trừu tượng của phương pháp .ajax
Nhưng người ta vẫn có thể sử dụng $ .get để nhận dữ liệu JSON, phải không? Nếu trang bạn đang gọi trả về một đối tượng JSON? – peirix
Chắc chắn, tôi giả sử, miễn là bạn chỉ định đối số 'dữ liệu' là json. Nếu trang sẽ trả về json, tại sao không chỉ sử dụng phương thức getJSON? Một lần nữa, đây chỉ là trừu tượng hóa để đơn giản hóa các cuộc gọi ajax, từ phương thức .ajax cơ sở. Họ ở đó để giúp mọi việc dễ dàng hơn cho bạn, không làm phức tạp! – ScottE
Tôi đã sử dụng $ .get không có đối số dữ liệu và nó hoạt động tốt. Tài liệu API cho biết mặc định cho đối số dữ liệu là "đoán thông minh", và vì vậy rõ ràng jQuery đang đoán đúng trong trường hợp sử dụng của tôi ;-) – Elisabeth
Sự khác biệt giữa $ .getJSON và $ .get là trong các thông số:
Vì vậy, sử dụng $ .get with dataType: JSON sẽ hoạt động giống như $ .getJSON.
Những gì bạn phải khai báo trong URL không liên quan gì đến jQuery. Cũng không phải là trường hợp cho tất cả các trang web - chắc chắn không phải cho một trong những của tôi ;-) – NickFitz
Tôi đã chỉ nói rằng bạn phải khai báo trong url mà bạn đang tìm kiếm một kết quả JSON, ngay cả khi bạn đang sử dụng getJSON. Và bạn cũng sẽ khai báo nó trong url cho $ .get(). Chỉ cần tự hỏi những gì người ta làm, mà người kia không ... – peirix
Bạn thực sự ** là ** ra khỏi theo dõi ở đây. trong khi sử dụng ** getJSON() ** phương pháp bạn ** KHÔNG ** phải rõ ràng vượt qua datatype nhưng trong ** get() ** Phương pháp bạn sẽ explixitly ** CÓ **. Xem nhận xét trên bởi yehuda. Nó cho biết toàn bộ câu chuyện hoặc người nào khác truy cập [http://api.jquery.com/jQuery.getJSON/](http://api.jquery.com/jQuery.getJSON/) – kushalvm