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

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

你可以在$.get()做同样的事情,并遍历JSON对象。

还是我离开这里?

以下两个片段是等效的:

 $.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标头以检测格式(而不是检查参数)。

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

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

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

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

使用HTTP GET请求加载JSON 数据

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

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

  1. $ .getJSON接受普通对象作为数据,而$ .get接受普通对象或字符串。
  2. $ .get有dataType参数。

因此,使用$ .get和dataType:JSON将与$ .getJSON完全相同。