GET与POST ajax请求:何时以及如何使用?

时间:2009-09-03 22:50:29

标签: ajax post get

创建ajax请求时,GET优于POST的优势是什么,反之亦然?我怎么知道在任何时候我应该使用哪个?这是一个有安全意识的决定吗?

另外,它们的实际发送方式有何不同?

4 个答案:

答案 0 :(得分:25)

GET应该用于idempotent操作,即可以在不改变任何内容的情况下多次安全重复的操作。浏览器将缓存GET请求(对于普通和AJAX请求)

POST通常应该用于非idenpotent操作,比如保存一些东西。虽然您可以根据需要将它们用于其他操作。

GET的数据通过URL查询字符串发送。 POST的数据单独发送。某些浏览器具有最大URL长度(我认为Internet Explorer是2048个字符),如果查询字符串变得太长,您将收到错误。

答案 1 :(得分:22)

您应该在AJAX调用中使用GET和POST请求,就像在普通调用中使用GET和POST请求一样。基本经验法则:

请求会修改模型中的任何内容吗?

  • 是:请求将修改(添加/更新/删除)数据存储中的数据,      或以其他方式改变服务器的状态(导致创建      例如,一个文件。 使用POST。
  • NO:请求不会影响任何状态(数据库,文件系统,      会话,...)在服务器上,但只是检索信息。 使用GET。

答案 2 :(得分:18)

POST请求是您不希望意外发生的请求。 GET请求是指用户通过URL指向浏览器而发生的请求。

GET请求可以非常简单地重复,因为它们的数据基于URL本身。

您应该考虑AJAX请求,就像您考虑常规表单请求(以及他们的GET和POST)

答案 3 :(得分:3)

雅虎!邮件团队发现,在使用XMLHttpRequest时,POST在浏览器中实现为两步过程:首先发送标头,然后发送数据。因此最好使用GET,它只需要一个TCP数据包发送(除非你有很多cookie)。 IE中的最大URL长度为2K,因此如果发送的数据超过2K,则可能无法使用GET。

http://developer.yahoo.com/performance/rules.html#ajax_get