Javascript 如何在发送前向XHR请求追加数据?
我有一个表单,它使用Rails UJS提交remote=true 在beforeSend事件中,我希望附加数据。我正在尝试以下方法:Javascript 如何在发送前向XHR请求追加数据?,javascript,jquery,ruby-on-rails,ruby-on-rails-3,ujs,Javascript,Jquery,Ruby On Rails,Ruby On Rails 3,Ujs,我有一个表单,它使用Rails UJS提交remote=true 在beforeSend事件中,我希望附加数据。我正在尝试以下方法: onNewListItemFormBeforeSend : function(event, xhr, settings) { settings.data += { 'list_item[title]' : input_val, 'list_item[position]' : 0, 'list_items[open_positions]' :
onNewListItemFormBeforeSend : function(event, xhr, settings) {
settings.data += { 'list_item[title]' : input_val,
'list_item[position]' : 0,
'list_items[open_positions]' : 'stuff',
'list_items[done_positions]' : 'stuff' )
};
}
但这是在我注销settings.data时添加对象。。。将这些项目附加到settings.data的正确方法是什么
谢谢
更新
我也试着做:
settings.data = { 'number' : 'XXXXXX' }
但那没用。在日志中,我看到:
Started POST "/lists/9/list_items" for 127.0.0.1 at 2011-10-24 11:55:39 -0700
Processing by ListItemsController#create as JSON
Parameters: {"object Object"=>nil, "list_id"=>"9"}
为什么对象为零
谢谢
试试这样的。您可以创建“list\u item”属性,并在js中动态设置它,如下所示。如果您使用的是较新版本的
jquery\u ujs
,您应该能够使用数据参数(如果此时您能够这样做)。否则,您可以绑定到ajax:before
并在该点修改数据。我会自己学习数据参数
下面是关于同一问题的更多细节:
谢谢,但这不起作用。。。当我记录settings.data时,不会追加项目
settings.data["list_item"] = { 'title' : input_val,
'position' : 0,
'open_positions' : 'stuff',
'done_positions' : 'stuff'
};