Javascript JQuery使ajax选项动态化
现在在我的Javascript JQuery使ajax选项动态化,javascript,ajax,Javascript,Ajax,现在在我的$.ajax({..})中呼叫我有以下选项: data: { param0: param0, param1: param1} 假设我希望参数的数量是动态的(基于传递给进行ajax调用的函数的变量)。如何提供数据:一组动态参数?我认为我需要提前(即在ajax调用之前)以某种方式构造一个对象(?),然后将该对象传递给数据:。但我不确定如何做到这一点 通过传入变量,我指的是可选参数,如果传入,将用作GET参数:param2和param3。因此: function myAjaxCall(pa
$.ajax({..})中代码>呼叫我有以下选项:
data: { param0: param0, param1: param1}
假设我希望参数的数量是动态的(基于传递给进行ajax调用的函数的变量)。如何提供数据:
一组动态参数?我认为我需要提前(即在ajax调用之前)以某种方式构造一个对象(?),然后将该对象传递给数据:
。但我不确定如何做到这一点
通过传入变量,我指的是可选参数,如果传入,将用作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(无或两者都有效),我需要相应地构造数据对象。如您所述,您需要使用参数生成对象并将其作为数据传递:
var mydata = {
name: 'ali',
email: 'ali@example.com',
...
}
$.ajax({
...
data: mydata,
...
});
您应该使用自动创建的
function myAjaxCall() {
$.ajax({
data: arguments, // "arguments" is an Array Object created automatically by JS
...
});
}
myAjaxCall({ fruit: "apple"}, "blah", 500, true);
或者,如果希望它是以arguments数组作为属性的对象文字:
function myAjaxCall() {
$.ajax({
data: {args: arguments}, // "arguments" is an Array Object
... // created automatically by JS
});
}
您可以使用任意数量的参数调用它,并且
function myAjaxCall() {
$.ajax({
data: arguments, // "arguments" is an Array Object created automatically by JS
...
});
}
myAjaxCall({ fruit: "apple"}, "blah", 500, true);
请注意,arguments
是只读的,因此如果要使用它,必须复制它,arguments.splice(0)
将不起作用。。。。您必须使用for循环
要检查传入了多少个参数,只需查看arguments.length
这很好,但许多框架(我知道ASP.Net)在JSON参数数组方面存在问题,最好传递一个具有数组属性的对象。诚然,我知道数组是有效的JSON,但实际上处理起来要痛苦得多。@sworoc-然后只需将数组添加到一个对象中。这就是我在第一句话末尾所说的,很高兴我们同意!)@sworoc-编辑后也包含该表格。