$ .getJSON和$ .get之间的差异

时间:2009-07-03 12:46:18

标签: jquery ajax json

这两个电话真的有区别吗?如果您使用getJSON,则仍需在网址中声明format=json

您可以在$.get()中执行相同操作,并遍历JSON对象。

还是我离开这里?

3 个答案:

答案 0 :(得分:45)

以下两个片段是等效的:

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

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

JSON的请求意味着两件事:

  • jQuery发送Accept: application/json标题
  • jQuery解释入站响应,将其转换为JavaScript对象,并将其传递给回调(因此您不必混淆eval或其他转换机制)。

许多服务器端框架(例如Rails)会自动检测Accept标头并适当地处理请求。如果您使用的是其他框架或自己编写框架,则可以检查Accept标头以检测格式(而不是检查参数)。

答案 1 :(得分:7)

我认为文档很清楚地解释了它!

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

使用HTTP GET请求加载远程页面

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

使用HTTP GET请求加载JSON 数据

请记住,这些只是.ajax方法的抽象

答案 2 :(得分:2)

$ .getJSOn和$ .get之间的差异在参数中:

  1. $。getJSON接受普通对象作为数据,而$ .get接受普通对象或字符串。
  2. $。get has dataType parameter。
  3. 因此,使用$ .get和dataType:JSON将与$ .getJSON完全相同。