2010-04-06 70 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