现在我的$.ajax({ ..});
电话中我有以下选项:
data: { param0: param0, param1: param1}
假设我希望动态参数的数量(基于传递给进行ajax调用的函数的变量)。如何提供data:
一组动态参数?我想我需要以某种方式提前构造一个对象(?)(即在ajax调用之前),然后将此对象传递给data:
..但我不知道该怎么做。
通过传入的变量,我的意思是可选参数,它们将被用作GET参数:param2和param3(如果它们被传入)。所以:
function myAjaxCall(param0, param1, param2, param3) { // param2/3 are optional
$.ajax({
//...
data: { param0: param0, param1: param1} // this will need param2/3 if passed in
//..
});
}
因此,取决于是否传入了param2和param3(无论是否,两者都有效)我需要相应地构造数据对象。
答案 0 :(得分:1)
正如您所提到的,您需要从参数中创建一个对象并将其作为数据传递:
var mydata = {
name: 'ali',
email: 'ali@example.com',
...
}
$.ajax({
...
data: mydata,
...
});
答案 1 :(得分:1)
您应该使用自动创建的 arguments
array 。
function myAjaxCall() {
$.ajax({
data: arguments, // "arguments" is an Array Object created automatically by JS
...
});
}
或者,如果您希望它是一个对象文字,并将arguments数组作为属性:
function myAjaxCall() {
$.ajax({
data: {args: arguments}, // "arguments" is an Array Object
... // created automatically by JS
});
}
您可以使用任意数量的参数调用此选项,并 the parameters can be any data form 。
myAjaxCall({ fruit: "apple"}, "blah", 500, true);
请注意,arguments
是只读的,因此如果您想使用它,则必须复制它,而arguments.splice(0)
将无效....您必须使用for循环。
要查看传入的参数数量,只需查看arguments.length
。