我正在尝试通过ajax post请求将包含一些文本字段和一个图像字段的表单数据发送到控制器。
表单数据如下所示:
这是我正在制作的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>
我花了很多时间寻找解决方案并尝试不同的解决方案,但仍然无效。我没有得到我所缺少的东西。
答案 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
。我从来没用过它。