为什么AJAX中会有GET和POST请求,因为它无论如何都不会影响页面URL?通过将敏感数据传递到AJAX中的GET上有什么区别,因为数据没有反映到页面URL?
您应该根据Web服务的要求使用正确的HTTP动词。
[当处理Collection URI时,例如:http://example.com/resources/
GET:列出集合的成员,并带有其成员URI以便进一步导航。例如,列出所有待售汽车。
PUT:定义为“将整个集合替换为另一个集合”。
POST:在集合中创建一个新条目,该ID由该集合自动分配。创建的ID通常包含在此操作返回的数据中。
DELETE:定义为“删除整个集合”。
[当处理Member URI时,例如:http://example.com/resources/7HOU57Y
GET:以适当的MIME类型检索表示集合的已寻址成员的表示形式。
PUT:更新集合的寻址成员或使用指定的ID创建它。
POST:将被寻址成员本身视为一个集合,并为其创建新的从属。
DELETE:删除集合中已寻址的成员。
来源:Wikipedia
嗯,对于GET,您仍然具有网址长度限制。除此之外,完全可以想象服务器对POST和GET请求的处理方式不同。因此需要能够指定您正在执行的请求。
GET
和POST
之间的另一个区别是浏览器中处理缓存的方式。 POST
响应从不缓存。 GET
可能会或可能不会根据您的响应标题中指定的缓存规则进行缓存。
拥有它们的两个主要原因:
GET
请求在大小上有一些限制性的限制; POST
通常能够包含更多信息。
后端可能期望GET
或POST
,具体取决于其设计方式。如果后端需要一个GET
,那么我们就需要灵活性;如果那是期望的,我们需要POST
。
这完全是遵守http协议的规则。
Get-调用必须是幂等的。这意味着,如果您多次调用它,您将获得相同的结果。它无意更改基础数据。您可以将其用于搜索框等。
Post-调用不是幂等的。允许对基础数据进行更改,因此可以在create方法中使用。如果多次调用,将创建多个条目。
您通常将参数发送到AJAX脚本,它会根据这些参数返回数据。它的工作方式类似于具有method =“ get”或method =“ post”的表单。使用GET方法时,参数将在查询字符串中传递。使用POST方法时,参数将在帖子正文中发送。
通常,如果您的参数只有很少的字符并且不包含敏感信息,则可以通过GET方法发送它们。敏感数据(例如密码)或长文本(例如,一个人的8000个字符长的个人简介)最好通过POST方法发送。
谢谢我主要将GET方法与Ajax一起使用,到目前为止,除以下内容外,我没有任何问题:
Internet Explorer(与Firefox和Google Chrome不同,如果使用相同的GET值,则缓存GET调用。
因此,除非对每个Ajax GET使用不相关的随机数来更改URL,否则对Ajax GET使用一定的间隔可以显示相同的结果。
其他人涵盖了要点(上下文/幂等性和大小),但是我要补充一点:加密。如果您使用的是SSL并想对输入的参数进行加密,则需要使用POST。
[当我们在Ajax中使用GET方法时,仅发送字段值的内容,而不发送内容的格式。例如,在使用GET方法的情况下,仅将文本区域中的内容添加到URL中(没有换行符)。 POST方法不是这种情况。