Jquery $.getJSON和$.get之间的差异
这两个电话真的有区别吗?如果使用getJSON,您仍然必须在url中声明Jquery $.getJSON和$.get之间的差异,jquery,ajax,json,Jquery,Ajax,Json,这两个电话真的有区别吗?如果使用getJSON,您仍然必须在url中声明format=json 您可以在$.get()中执行相同的操作,并遍历JSON对象 还是我离这里太远了?我认为文档中已经非常清楚地解释了这一点 使用HTTP GET请求加载远程页面 使用HTTP GET请求加载JSON数据 记住,这些只是.ajax方法的抽象以下两个片段是等效的: $.get("/some/url", {data: "value"}, function(json) { // use json her
format=json
您可以在$.get()
中执行相同的操作,并遍历JSON对象
还是我离这里太远了?我认为文档中已经非常清楚地解释了这一点 使用HTTP GET请求加载远程页面 使用HTTP GET请求加载JSON数据
记住,这些只是.ajax方法的抽象以下两个片段是等效的:
$.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
标题以检测格式(而不是检查参数)。美元.getJSOn和美元.get之间的差异在于参数:
因此,将$.get与dataType:JSON一起使用与$.getJSON完全相同。您在URL中声明的内容与jQuery无关。也不是所有地点都是如此——当然不是我的一个地点;-)我只是说,您必须在url中声明您正在寻找JSON结果,即使您使用的是getJSON。您也可以在$.get()的url中声明它。只是想知道其中一个做什么,而另一个没有…你实际上已经偏离了轨道。在使用getJSON()方法时,您不必显式地传递数据类型,但在get()方法中,您必须显式地传递数据类型。见上面yehuda的评论。它讲述了整个故事,或者我确实看到你接受了答案。但坦率地说,没有人像我那样直截了当地指出我提到的事实。也许你现在清楚了。太好了!但是仍然可以使用$.get来接收JSON数据,对吗?如果您调用的页面返回一个JSON对象?当然,我想,只要您将'data'参数指定为JSON。如果页面将返回json,为什么不使用getJSON方法呢?同样,这些只是从base.ajax方法简化ajax调用的抽象。他们的存在是为了让事情变得更容易,而不是让事情复杂化!我使用了没有数据参数的$.get,它工作得很好。API文档说数据参数的默认值是“智能猜测”,因此显然jQuery在我的用例中猜测正确;-)我还应该指出,添加Accept header解决方案的原因是为了迎合优雅地处理它的框架,使jQuery和这些框架(例如Rails)之间的通信无缝。