没有获得通过ajax post request rails发送的表单数据

时间:2017-07-12 19:14:59

标签: ruby-on-rails ajax

我正在尝试通过ajax post请求将包含一些文本字段和一个图像字段的表单数据发送到控制器。

表单数据如下所示:

enter image description here

这是我正在制作的ajax电话

 $.ajax({
      type: "POST",
      dataType: "json",
      processData: false,
      data: {'new_post_data': data},
      url: "/posts/newpostcreate",
      success: function(resp, status){
       }
  }); 

请求正在发送,但在控制器中我得到了类似

的内容
ActionController::Parameters {"object Object"=>nil, "controller"=>"posts", "action"=>"new_post_create"} permitted: false>

我花了很多时间寻找解决方案并尝试不同的解决方案,但仍然无效。我没有得到我所缺少的东西。

1 个答案:

答案 0 :(得分:1)

您似乎使用了错误的格式以及您的数据'变量为空(Params中给出的提示:"object Object"=>nil)。试着通过这个:

$.ajax({
      type: "POST",
      dataType: "json",
      data: { new_post_data: "test" },
      url: "/posts/newpostcreate",
      success: function(response){
          console.log(response);
      }
  });

编辑:我意识到您的数据中有文件附件。我认为你最安全的选择是创建一个FormData对象并将所有数据分配给它。 https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData

我不确定processData: false。我从来没用过它。