jquery GET和POST混淆

时间:2010-04-06 16:40:01

标签: php ajax

我不确定jquery是如何工作的。我想在jQuery方面了解关于GET和POST的一些事情。

我在我的应用中使用以下代码:

<script>
function example_ajax_request() {
  $('#example-placeholder').html('<p>Loading results ... <img src="ajax-loader.gif"  /></p>');
  $('#example-placeholder').load("ind.php?show=" + $('#box option:selected').val());
}
</script>

我在这种方法中没有使用GET或POST。 我使用一个按钮来调用example_ajax_request来处理请求并获得结果。

有时我会看到这样的代码:

$.ajax({
  url: 'loader.php',
  data: 'somedata',
  method: 'GET',
  success: function(data){
    $('#er').text(data);
  }
});

我的疑问是,我们是否需要使用方法发布数据? (在GET或POST中)发送和获取PHP webapps中的数据? 我使用的代码首先工作正常,即使我不使用任何POST或GET方法。

任何输入?

感谢。

5 个答案:

答案 0 :(得分:4)

“阅读手册” - http://api.jquery.com/load/

  

如果是数据,则使用POST方法   作为对象提供;否则,GET   假定。

答案 1 :(得分:2)

以您的方式使用.load(),它通过GET请求资源。通过在网址(?param1=value1)中附加参数,您可以提供“GET参数”。

此:

$.ajax({
  url: 'loader.php',
  data: 'param1=value1',
  method: 'GET',
  success: function(data){
    $('#er').text(data);
  }
});

基本相同
$('#er').load('loader.php?param1=value');

第一种方法的优点在于,您可以在回调函数(success :function(){})内部执行更多操作,而不仅仅是将内容放入元素中。你获得了更多的控制权阅读.ajax()


GETPOST之间的区别在于使用GET方法,参数作为网址的一部分发送,而使用POST时,参数会在正文中发送请求。因此,通过GET提供参数更容易。另一方面,URL不能是任意长度,因此通过GET发送参数是有限的。

如果您真的只想获取数据,则应使用

GET。参数可用于控制输出(例如,在分页时使用此结果集)。

如果您想在服务器端更改数据,则应使用

POST

详细了解request methods on Wikipedia

答案 2 :(得分:2)

您从浏览器发送到服务器的所有数据(通常情况下)将通过HTTP verbs(请求方法),几乎总是GETPOST,但还有其他数据。例如,当您想要访问网页时,GET是浏览器发送给服务器的内容。由于各种原因,POST几乎总是将表单发送到服务器。

jQuery ajax方法可以使用GETPOST,具体取决于您告诉他们要做的事情。 load实际上是根据您告诉它与请求一起发送的数据来决定的。 jQuery的jQuery.ajaxjQuery.getjQuery.post函数可以让您具体说出您想要做的事情。

答案 3 :(得分:0)

阅读本手册总是一个好主意。 http://api.jquery.com/load/

  

“如果数据是,则使用POST方法   作为对象提供;否则,GET   假设。“

答案 4 :(得分:0)

默认情况下,.load()和.ajax()都执行GET请求。结果通常是相同的,但为了成为一名优秀的开发人员,您必须了解每个人的差异和理念。似乎更容易使用,在传递信息方面更加透明。您传递可见参数。 POST允许传递更大,更复杂的信息。

就词汇而言,纯粹主义者说GET应该获取信息而POST应该发布它。

建议:浏览器可以缓存GET请求,因此请添加带时间戳的额外参数以使内容刷新。

作为一个reccomandation我会使用ajax()和POST,因为ajax是一个复杂的请求,允许你处理所有的错误。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html