为什么AJAX中存在GET和POST请求,因为它不会影响页面URL?在AJAX中通过GET传递敏感数据会有什么不同,因为数据没有反映到页面URL?
答案 0 :(得分:41)
您应该根据Web服务的要求使用正确的HTTP动词。
处理集合 URI时,例如: http://example.com/resources/
GET :列出集合的成员,并提供其成员URI以进一步导航。例如,列出所有待售的汽车。
PUT :意义定义为“将整个集合替换为另一个集合”。
POST :在集合中创建一个新条目,集合会自动为该ID分配ID。创建的ID通常包含在此操作返回的数据中。
DELETE :意义定义为“删除整个集合”。
处理会员 URI时,例如: http://example.com/resources/7HOU57Y
GET :检索以适当的MIME类型表示的集合的已寻址成员的表示。
PUT :更新集合的已寻址成员或使用指定的ID创建它。
POST :将已解决的成员视为一个集合,并创建一个新的下属。
删除:删除已解决的集合成员。
来源:Wikipedia
答案 1 :(得分:18)
好吧,至于GET,你仍然有网址长度限制。除此之外,可以想象服务器以不同方式处理POST和GET请求;因此需要能够指定你正在做什么请求。
答案 2 :(得分:9)
GET
和POST
之间的另一个区别是在浏览器中处理缓存的方式。永远不会缓存POST
响应。 GET
可能会也可能不会根据您的响应标头中指定的缓存规则进行缓存。
答案 3 :(得分:6)
拥有它们的两个主要原因:
GET
请求对大小有一些非常严格的限制; POST
通常能够包含更多信息。
后端可能需要GET
或POST
,具体取决于其设计方式。如果后端需要一个,我们需要灵活地执行GET
,如果这是预期的,我们需要POST
。
答案 4 :(得分:6)
这仅仅是为了尊重http协议的规则。
获取 - 调用必须是幂等的。这意味着如果您多次调用它,您将获得相同的结果。它无意更改基础数据。您可以将其用于搜索框等。
发布 - 调用不是幂等的。允许对基础数据进行更改,因此可以在create方法中使用。如果多次调用它,您将创建多个条目。
答案 5 :(得分:4)
您通常将参数发送到AJAX脚本,它会根据这些参数返回数据。它就像一个有method =“get”或method =“post”的表单。使用GET方法时,参数将在查询字符串中传递。使用POST方法时,参数将在帖子正文中发送。
通常,如果您的参数字符很少且不包含敏感信息,那么您可以通过GET方法发送它们。通过POST方法可以更好地发送敏感数据(例如密码)或长文本(例如,一个人的8000字符长的生物)。
答案 6 :(得分:1)
谢谢.. 我主要使用Gax方法和Ajax,直到现在我没有遇到任何问题,除了以下内容:
Internet Explorer(与Firefox和谷歌浏览器不同)如果使用相同的GET值,则缓存GET调用。
因此,使用Ajax GET的某个时间间隔可以显示相同的结果,除非您使用每个Ajax GET的无关随机数用法更改URL。
答案 7 :(得分:0)
其他人已经涵盖了主要观点(上下文/幂等性和大小),但我将添加另一个:加密。如果您使用SSL并想要加密输入参数,则需要使用POST。
答案 8 :(得分:0)
当我们在Ajax中使用GET方法时,只发送字段值的内容,而不是内容的格式。例如,在GET方法的情况下,文本区域中的内容仅添加到URL中(没有新行字符)。在POST方法中情况并非如此。