如何将参数传递给$ .ajax()?
问题描述:
如何将数据传递给$ .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);
}
})
}
答
您使用data
参数选项哈希:
数据被发送到服务器。它被转换成查询字符串,如果还不是字符串的话。它附加到GET请求的url。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个数组,则jQuery会根据传统设置的值(如下所述)使用相同的键序列化多个值。
例如:
$.ajax({
url: '/pancakes/house',
data: { 'where': [ 'is' ] },
// ...
});
答
的优选方法是使用data
参数与含有键 - 值对的对象,例如
$.ajax({
url: ...
type: ...
data: {
guid: ...
param2: ...
},
...
});
jQuery将该对象包装成key1=value1&key2=value2
等格式。
如果任一值的是数组则处理略有不同 - 见http://api.jquery.com/jQuery.param/
答
不能你一个查询字符串做呢?
"url": "Add.aspx" + '?ID=' + [VARIABLE],
+2
你可以,但你不应该 - 这就是'data'参数的用途。 – Alnitak 2011-04-22 20:24:05
这是最好的方法......但它需要被串化......如果你只是传入一个像这样的json对象,编码将是不正确的。 – 2011-04-22 20:24:45
这不是一个JSON对象,它是一个普通的JS对象,jQuery将正确(并自动)URIencode并在其中包含键值对。 – Alnitak 2011-04-22 20:27:21
你是对的...我忘了它需要字符串/字符串对是JSON ...但我从来没有成功地正确编码它。我一直不得不依靠JSON.stringify()方法来完成它。 – 2011-04-22 20:34:13