在AJAX中获取GET和POST?

时间:2009-12-09 10:23:20

标签: ajax http post get

为什么AJAX中存在GET和POST请求,因为它不会影响页面URL?在AJAX中通过GET传递敏感数据会有什么不同,因为数据没有反映到页面URL?

9 个答案:

答案 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)

GETPOST之间的另一个区别是在浏览器中处理缓存的方式。永远不会缓存POST响应。 GET可能会也可能不会根据您的响应标头中指定的缓存规则进行缓存。

答案 3 :(得分:6)

拥有它们的两个主要原因:

  1. GET请求对大小有一些非常严格的限制; POST通常能够包含更多信息。

  2. 后端可能需要GETPOST,具体取决于其设计方式。如果后端需要一个,我们需要灵活地执行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方法中情况并非如此。