Javascript 如何在发送前向XHR请求追加数据?

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]' :

我有一个表单,它使用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]' : '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'
};