2011-04-22 118 views
2

如何將數據傳遞給$ .ajax()調用?我想傳遞一個GUID(字符串),在另一種情況下,傳遞一個包含整數和字符串的數組。

下面的代碼工作正常,但我需要傳遞一些參數進行處理。謝謝!

function btnAdd_onclick() { 
      $.ajax({ 
       "url": "Add.aspx", 
       "type": "get", 
       "success": function (response) { 
        alert(response); 
        $("body").append(response); 

       }, 
       "error": function (response) { 
        alert("Error: " + response); 
       } 
      }) 
} 

回答

2

您使用data參數選項哈希:

數據被髮送到服務器。它被轉換成查詢字符串,如果還不是字符串的話。它附加到GET請求的url。請參閱processData選項以防止此自動處理。對象必須是鍵/值對。如果value是一個數組,則jQuery會根據傳統設置的值(如下所述)使用相同的鍵序列化多個值。

例如:

$.ajax({ 
    url: '/pancakes/house', 
    data: { 'where': [ 'is' ] }, 
    // ... 
}); 
0

的優選方法是使用data參數與含有鍵 - 值對的對象,例如

$.ajax({ 
    url: ... 
    type: ... 
    data: { 
     guid: ... 
     param2: ... 
    }, 
    ... 
}); 

jQuery將該對象包裝成key1=value1&key2=value2等格式。

如果任一值的是數組則處理略有不同 - 見http://api.jquery.com/jQuery.param/

+0

這是最好的方法......但它需要被串化......如果你只是傳入一個像這樣的json對象,編碼將是不正確的。 – 2011-04-22 20:24:45

+0

這不是一個JSON對象,它是一個普通的JS對象,jQuery將正確(並自動)URIencode並在其中包含鍵值對。 – Alnitak 2011-04-22 20:27:21

+0

你是對的...我忘了它需要字符串/字符串對是JSON ...但我從來沒有成功地正確編碼它。我一直不得不依靠JSON.stringify()方法來完成它。 – 2011-04-22 20:34:13

0

不能你一個查詢字符串做呢?

"url": "Add.aspx" + '?ID=' + [VARIABLE], 
+2

你可以,但你不應該 - 這就是'data'參數的用途。 – Alnitak 2011-04-22 20:24:05