javascript - 如何在发送前将数据附加到 XHR 请求?

标签 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]' : '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"}

为什么object对象为nil?

谢谢

最佳答案

如果您使用的是较新版本的jquery_ujs,您应该能够使用data-params(如果此时您能够这样做) .否则,您可以绑定(bind)到 ajax:before 并在那一点修改数据。我会自己学习 data-params

下面是同一问题的更多细节:

https://github.com/rails/jquery-ujs/issues/168

关于javascript - 如何在发送前将数据附加到 XHR 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7880221/

相关文章:

javascript - 如何在折线图中添加多种背景颜色

javascript - 如何检测 Angular 应用程序中与 rxjs 相关的内存泄漏

javascript - 我可以将 .getState() 方法作为 prop 传递给我的组件吗?

javascript - 内部 div 滚动不适用于 firefox 浏览器

javascript - jquery数据表: page length select list not shown

ruby-on-rails - 监控基于 Web 的生产应用程序

javascript - blast.js 动画与 jquery ui 彩色动画

javascript - 谷歌地图 fitBounds 不适用于 ajax 功能 - 似乎只适用于一个标记

ruby-on-rails - 错误-迁移正在进行中。要解决此问题,请运行:bin/rake db:migrate RAILS_ENV = development

mysql - 如何根据查询插入多行?