jquery.post和jquery.get之间的区别?

时间:2010-03-03 21:26:20

标签: jquery

这两个AJAX调用之间有什么区别?为什么我在使用asp.net mvc框架时会选择使用?

6 个答案:

答案 0 :(得分:11)

一个使用POST,一个使用GET。

就他们的意图而言 - 唯一真正的技术差异(如果我错了请更正这篇文章)是GET对查询字符串的限制要短得多。实际上,GET用于从服务器获取内容时。 GET调用不应该对服务器造成副作用。 POST是指您打算在服务器上发送内容并让它对其执行某些操作。

编辑:我正在寻找的用于描述GET的词是幂等的。您应该能够无限次地进行完全相同的GET调用,并且每次都获得相同的结果,而不会对服务器产生任何影响(当然,前提是没有其他人改变服务器的状态。)但是请记住那里没有技术障碍阻止您滥用GET或POST。

答案 1 :(得分:4)

$.post$.get只是$.ajax的包装器,具有type参数的相应值。 (source中的第4888和4913行。)

在MVC中,您可以指定控制器操作仅接受使用特定HTTP请求类型发出的请求(使用AcceptVerbs控制器/操作属性)。

如果您要提交此类操作的请求,则需要指定请求类型,在这种情况下,您可能会找到$.post$.get $.ajax的便捷快捷方式。

答案 2 :(得分:3)

我遇到的问题是IE会缓存$ .get调用,这是一个问题,因为你通常使用Ajax来刷新数据。如果你想使用GET但不想被缓存,你必须下拉到$.ajax并在设置中传递cache:false。

答案 3 :(得分:1)

get是HTTP GET调用,post是HTTP POST。

请参阅维基百科more explanation

基本上,如果您要包含数据(例如表单提交),请使用post;否则,如果您只是加载页面,或者想要传递query string parameters,请使用get。 (您传递给get的任何数据都将作为查询字符串传递)

编辑:

它们是分开的,因为底层的XMLHttpRequest对象(浏览器中的基本AJAX对象)需要specifying a method。实际上,甚至低于此,当您请求网页时,您必须使用HTTP / 1.0 GET或HTTP / 1.0 POST(或其他请求方法)。如果从设计的角度来看,作为将字符串传递给某种“加载”方法的替代方法,我不能说jQuery背后的软件架构师在想什么。

EDIT2:

实际上,如果你查看最新的jQuery文档,getpost列在“简写方法”下,并给出了等效的方法。因此,它们只是用于缩短代码并且与ajax方法同义。

答案 4 :(得分:0)

推送更改集时应始终使用POST - 有安全隐患,我会将其中的所有详细信息留给研究。

答案 5 :(得分:0)

**GET** - Requests data from a specified resource
**POST** - Submits data to be processed to a specified resource

GET主要用于从服务器获取(检索)某些数据。注意:GET方法可能会返回缓存数据。

POST也可用于从服务器获取一些数据。但是,POST方法永远不会缓存数据,并且通常用于与请求一起发送数据。