Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

difference between $.getJSON and $.get

Tags:

json

jquery

ajax

Is there really a difference in these two calls? If you use getJSON, you still have to declare format=json in the url...

And you can do the same in $.get(), and iterate through the JSON-object.

Or am I way off here?

like image 934
peirix Avatar asked Jul 03 '09 12:07

peirix


People also ask

What does getJSON mean?

The getJSON() method is used to get JSON data using an AJAX HTTP GET request.

What are the arguments of getJSON method?

It is a callback function that executes on the successful server request. It also has three parameters that are data, status, and xhr in which data contains the data returned from the server, status represents the request status like "success", "error", etc., and the xhr contains the XMLHttpRequest object.


2 Answers

The following two snippets are equivalent:

$.get("/some/url", {data: "value"}, function(json) {    // use json here }, "json")  $.getJSON("/some/url", {data: "value"}, function(json) {   // use json here }); 

Saying that a request is for JSON means two things:

  • jQuery sends an Accept: application/json header
  • jQuery interprets the inbound response, converts it into a JavaScript Object, and passes it into the callback (so you don't have to mess with eval or other conversion mechanism).

A number of server-side frameworks (such as Rails) automatically detect the Accept header and handle the request appropriately. If you are using a different framework or rolling your own, you can inspect the Accept header to detect the format (instead of inspecting the parameters).

like image 131
Yehuda Katz Avatar answered Oct 05 '22 23:10

Yehuda Katz


I think the documentation explains it quite clearly!

http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype

Load a remote page using an HTTP GET request.

http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback

Load JSON data using an HTTP GET request.

Remember, these are just abstractions of the .ajax method

like image 39
ScottE Avatar answered Oct 06 '22 01:10

ScottE