jQuery $.post()与$.get()的区别

9

我需要获取一个简单的页面并使用它返回的数据。 $.post()$.get() 之间有什么区别?我应该使用哪个?

我不打算提交任何请求数据。


以下是最常用的jQuery AJAX方法的快速概述:http://www.catchmyfame.com/2012/03/05/whats-the-best-jquery-method-for-retrieving-ajax-data/ - j08691
5个回答

12

如果您只想从HTML文档中检索内容,请改用$.load()

您甚至可以通过提供额外的选择器来检索该文档的部分信息:

$('#result').load('ajax/test.html');
$('#result').load('ajax/test.html #justThisContainerPlease');

请参见http://api.jquery.com/load/


一般来说,使用POSTGET请求服务器并没有太大的区别,这取决于你需要发送的数据量。通常情况下,GET请求限制为2083个字符(因为IE限制了查询字符串长度)。因此,如果你需要发送大量数据,则应该使用POST请求。

从技术上讲,GET请求应该略快一些。因为内部只发送一个数据包而不是至少两个(一个用于头部信息,另一个用于传输主体)。但这确实是高性能优化。


阅读http://thenetworkguy.typepad.com/nau/2008/08/http-post-haste.html以详细说明最后一段。 - mbx

2
如果您不需要提交数据,那么实际上应该使用$.load();$.get();$.post()通常用于向服务器提交数据,在这种情况下您不需要它们。POST和GET数据之间有很大的区别,您应该花些时间了解它们

1

这里有一篇不错的文章,解释了HTTP POST和HTTP GET之间的区别。我个人更喜欢使用$.ajax();并进行相应的调整。


1
它们之间的主要区别在于,使用POST时您传递数据集合,而使用GET时您在URL中传递数据。如果您要传递大量数据,则建议使用POST。如果您只是调用URL以获取响应,则使用get。
但是,为了全面理解,请查看每个jQuery文档。
GET:http://api.jquery.com/jQuery.get/ POST:http://api.jquery.com/jQuery.post/

0

如果您不需要提交任何数据,可以选择使用$.get(),或者如果您想在浏览器中显示页面(您想刷新页面的一部分),则可以选择使用$.load()


使用$.get而不是$.post有什么原因吗? - qwertymk
这更多是语义学的问题 - POST 表示“在服务器上更新资源”,GET 表示“从服务器检索资源”。 - Jakub Konecki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接