Ajax发布请求嵌套参数无数据

时间:2016-06-17 19:11:02

标签: javascript jquery ruby-on-rails ajax

我正在尝试使用Ajax向我的rails控制器发出Ajax请求。

$.ajax({
  url: '/vulnerabilities/export',
  type: 'GET',
  processData: false,
  data: {export: {ids: this.refs.table.state.selectedRowKeys }}
});

当有ID的数据(来自复选框)时,参数是正确的,看起来像这样

{"export"=>{"ids"=>["1", "2"]}, "controller"=>"export", "action"=>"index"}

然而,当没有id时,params就像这样

{"controller"=>"export", "action"=>"index"}

我想要的是它在没有id时发送一个空数组,所以它看起来像这样

{"export"=>{"ids"=>[]}, "controller"=>"export", "action"=>"index"}

我怎样才能做到这一点?

由于

1 个答案:

答案 0 :(得分:0)

您可以检查param是否为数组,然后在数据部分设置之前验证长度。

/**
* Gets some type of vulnerabilities
* @param Array
*/
function getExport(ids) {
    var idSet = (Array.isArray(ids) && ids.length > 0) ? ids : [];
    $.ajax({
      url: '/vulnerabilities/export',
      type: 'GET',
      processData: false,
      data: {export: {"ids": idSet }, ...}
    });

}