我决定使用jQuery来满足我所有与AJAX相关的客户端需求。 但是jQuery对于同一个任务有太多的功能:$ .post,$。get,$ .ajax,$ .getJSON ...... 我的问题是我应该使用什么?
编辑: 我将使用POST和JSON连接到CodeIgniter PHP框架。
谢谢。
答案 0 :(得分:6)
这实际上取决于,它不是AJAX或jQuery特有的,而是关于HTTP协议。
POST方法应该用于发送一次提交的数据,就像表单一样。 POST& GET方法没有相同的长度限制,您可以使用POST发送比GET更多的数据。
GET用于“获取”静态页面。 (虽然这不是真的,但无论如何,你明白了)
例如,当提交表单时,使用POST方法,因为结果内容特定于此请求。
此外,您必须注意,您的浏览器或jQuery永远不会缓存POST。
$ .post& $ .get只是$ .ajax(options)的代理方法;
和$ .getJSON专门设计用于仅使用GET方法处理JSON结果(感谢thedp)
答案 1 :(得分:5)
答案 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
});
简短的故事:阅读文档了解什么是什么,什么符合您的需求