jQuery和AJAX我应该使用什么?

时间:2010-03-29 15:32:34

标签: jquery ajax post get

我决定使用jQuery来满足我所有与AJAX相关的客户端需求。 但是jQuery对于同一个任务有太多的功能:$ .post,$。get,$ .ajax,$ .getJSON ...... 我的问题是我应该使用什么?

编辑: 我将使用POST和JSON连接到CodeIgniter PHP框架。

谢谢。

7 个答案:

答案 0 :(得分:6)

这实际上取决于,它不是AJAX或jQuery特有的,而是关于HTTP协议。

POST方法应该用于发送一次提交的数据,就像表单一样。 POST& GET方法没有相同的长度限制,您可以使用POST发送比GET更多的数据。

GET用于“获取”静态页面。 (虽然这不是真的,但无论如何,你明白了)

例如,当提交表单时,使用POST方法,因为结果内容特定于此请求。

此外,您必须注意,您的浏览器或jQuery永远不会缓存POST。

$ .post& $ .get只是$ .ajax(options)的代理方法;

和$ .getJSON专门设计用于仅使用GET方法处理JSON结果(感谢thedp)

答案 1 :(得分:5)

使用$.ajax并且始终始终包含error参数(速记$.post$.get莫名其妙地遗漏 - 有时短暂的 短)。除非你生活在一个没有出错的完美世界,在这种情况下,我在哪里签名? : - )

答案 2 :(得分:4)

大多数只是$ .ajax的简写,这通常是我使用的。

答案 3 :(得分:3)

这实际上取决于具体情况。

但是,如果您将ASP.Net与Web服务一起使用,则可能需要使用$ .ajax方法来传递空数据集。

此博客文章解释了原因:

http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/

一个例子:

$.ajax({
  type: "POST",
  contentType: "application/json; charset=utf-8",
  url: "WebService.asmx/WebMethodName",
  data: "{}",
  dataType: "json"
});

如您所见,$ .ajax()方法允许您指定“GET”(在查询字符串中传递)或“POST”(在请求中传递)

是的,它更“复杂”,但您可以使用$ .ajaxSetup()来简化调用:

这是一篇博文: http://encosia.com/2009/07/21/simplify-calling-asp-net-ajax-services-from-jquery/

该页面的一个例子:

$.ajaxSetup({
  type: "POST",
  contentType: "application/json; charset=utf-8",
  data: "{}"
});

这为$ .ajax中的值设置默认值,因此您无需进行设置。

您的代码可以像以下一样简单:

$.ajax({
   url: "HelloWorld.asmx/Hello",
   success: function(msg) {
      /* Do Stuff */
  }
});

甚至:

$.ajax({ url: "HelloWorld.asmx/Hello" });

答案 4 :(得分:2)

不,问题是你想做什么?

如果您以非JSON格式发回数据,则没有理由使用$ .getJSON。

$ .ajax更可定制,但它比其他功能更复杂。

我通常选择$ .post和$ .get。

答案 5 :(得分:2)

$ .post和$ .get以及$ .getJSON都是包装$ .ajax的便捷方法。你选择的只是风格问题。

答案 6 :(得分:1)

The documentation用于$.get()$.post()之类的简写方法描述了$.ajax()等价物的含义。

例如get描述:

$.ajax({
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

简短的故事:阅读文档了解什么是什么,什么符合您的需求