2010-04-06 112 views
1

我不确定jQuery是如何工作的。我想了解关于GET和POST的几点关于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方法,我使用的代码仍然可以正常工作。

任何输入?

谢谢。

回答

2

按照您的方式使用​​,它通过GET请求资源。通过将参数附加到URL(?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方法,参数被作为URL而用POST的一部分被发送,参数是在请求的主体中发送。因此通过GET提供参数更容易。另一方面,URL不能是任意长度的,所以通过GET发送参数是有限的。

GET应该使用,如果你真的只想要得到的数据。可以使用参数来控制输出(例如,在分页结果集时使用此参数)。

POST另一方面应该使用,如果你想在服务器端更改数据。

了解更多关于request methods on Wikipedia

+1

这是正确的GET在.load隐含的(),并且使用它而不自知。 – 2010-04-06 16:47:17

0

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

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

+0

打败我 – thetaiko 2010-04-06 16:45:31

2

所有数据你。从浏览器(在正常情况下)发送到服务器将通过HTTP verbs(请求方法),几乎总是GETPOST虽然还有其他的。GET是什么BR例如,当你想访问一个网页时,owsers发送给服务器。由于各种原因,几乎总是使用POST将表单发送到服务器。

jQuery ajax方法可以使用GETPOST,具体取决于您告诉他们做什么。 load实际上是根据您告诉它随请求发送的数据为您决定的。 jQuery的jQuery.ajax,jQuery.getjQuery.post函数让你明确地说你想要做什么。

0

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

在词汇方面,纯粹主义者说,GET应该得到的信息和POST应张贴。

建议:GET请求是由浏览器缓存,从而增加额外的PARAM时间戳使内容刷新。

作为reccomandation作为Ajax是一种复杂的要求,使您可以处理所有errrors我会用ajax()的POST。

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