创建ajax请求时,GET优于POST的优势是什么,反之亦然?我怎么知道在任何时候我应该使用哪个?这是一个有安全意识的决定吗?
另外,它们的实际发送方式有何不同?
答案 0 :(得分:25)
GET应该用于idempotent操作,即可以在不改变任何内容的情况下多次安全重复的操作。浏览器将缓存GET请求(对于普通和AJAX请求)
POST通常应该用于非idenpotent操作,比如保存一些东西。虽然您可以根据需要将它们用于其他操作。
GET的数据通过URL查询字符串发送。 POST的数据单独发送。某些浏览器具有最大URL长度(我认为Internet Explorer是2048个字符),如果查询字符串变得太长,您将收到错误。
答案 1 :(得分:22)
您应该在AJAX调用中使用GET和POST请求,就像在普通调用中使用GET和POST请求一样。基本经验法则:
请求会修改模型中的任何内容吗?
答案 2 :(得分:18)
POST请求是您不希望意外发生的请求。 GET请求是指用户通过URL指向浏览器而发生的请求。
GET请求可以非常简单地重复,因为它们的数据基于URL本身。
您应该考虑AJAX请求,就像您考虑常规表单请求(以及他们的GET和POST)
答案 3 :(得分:3)
雅虎!邮件团队发现,在使用XMLHttpRequest时,POST在浏览器中实现为两步过程:首先发送标头,然后发送数据。因此最好使用GET,它只需要一个TCP数据包发送(除非你有很多cookie)。 IE中的最大URL长度为2K,因此如果发送的数据超过2K,则可能无法使用GET。