我绑定(bind)到 beforeSend 的 ajax 表单提交:
我的函数如下所示:
submitStuff : function(e, xhr, settings) {
settings.data = {
invitation : {
emails : me.returnsArrayX(),
bucket2 : me.returnsArrayY(),
bucket3 : me.returnsArrayZ()
}
}
}
当我像这样手动提交到服务器时,这是有效的:
$.ajax({
type: 'POST',
url: '/myurl',
dataType: 'json',
data: {
invitation : {
emails : me.returnsArrayX(),
bucket2 : me.returnsArrayY(),
bucket3 : me.returnsArrayZ()
}
}
});
但是由于我使用的是Rails UJS,所以我想使用内置的表单提交器(数据远程)。为什么settings.data在上面不起作用?我是否需要将对象转换为数组或其他内容?
谢谢
最佳答案
将processData
设置为false
,然后您可以简单地在beforeSend
中使用对象:
$.ajax("/", {
beforeSend: function(xhr, settings) {
settings.data.key2 = "value2";
settings.data.key3 = {
more: "values",
like: "this"
};
//Encode at end
settings.data = jQuery.param(settings.data, false);
},
data: {
key: "value"
},
processData: false,
type: "POST"
});
关于jquery - 如何在 jQuery ajax beforeSend 的 settings.data 中添加一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11731460/