2011-04-22 156 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