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

pei*_*rix 26 ajax jquery json

这两个电话真的有区别吗?如果你使用getJSON,你仍然需要format=json在url中声明...

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

还是我离开这里?

Yeh*_*atz 46

以下两个片段是等效的:

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

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

说请求是JSON指两件事:

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

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


Sco*_*ttE 7

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

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

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

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

使用HTTP GET请求加载JSON 数据.

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

  • 我使用$ .get没有数据参数,它工作得很好.API文档说数据参数的默认值是"智能猜测",所以显然jQuery在我的用例中正确猜测;-) (4认同)