【发布时间】:2012-07-31 00:15:24
【问题描述】:
我正在绑定到 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 在上面不起作用?我需要将对象转换为数组还是其他东西?
谢谢
【问题讨论】:
-
看来我还需要追加数据,而不是替换以不丢失 CSRF 令牌
-
这个
me变量在哪里定义?在第一个代码 sn-p 中应该是e?我不熟悉 Rails UJS,但beforeSend回调的正常签名是(jqXHR, settings)。如果我理解正确,您是说您使用submitStuff作为beforeSend回调——您或Rails UJS 是否正在做一些调整以拥有额外的参数?
标签: jquery ruby-on-rails ruby-on-rails-3 ujs