使用jQuery.post时发生400个错误的请求错误
问题描述:
我是Rails的新手,正在尝试使用jQuery.post使用ajax发布表单并显示结果。使用jQuery.post时发生400个错误的请求错误
POST http://localhost:3000/main/newStuff 400 (Bad Request)
我在看的例子在this jQuery page底部:
但我在我的控制台,当我点击提交只得到这一点。
这里是我的Ajax代码:
$("#new_stuff_form").submit(function(event) {
// Stop form from submitting normally
event.preventDefault();
// Get some values from elements on the page:
var $form = $(this),
title = $form.find("#new_stuff_title").val(),
url = $form.attr("action");
// Send the data using post
var posting = $.post(url, { title: title });
posting.done(function(data) {
console.log(data);
});
posting.fail(function(data) {
console.log(data);
});
});
这里是我的控制器:
def createStuff
@stuff = Stuff.new(stuff_params)
@stuff.save
render json: {status: "ok"}
end
private
def stuff_params
params.require(:stuff).permit(:title, :due_date)
end
这是我的观点:
<%= simple_form_for @stuff, url: stuff_create_path, html: {id: "new_stuff_form",class: "form-horizontal", role: "form"} do |f| %>
<div class="form-group">
<label for="new_stuff_title" class="col-sm-2 control-label">Title</label>
<div class="col-sm-10">
<%= f.input_field :title, class: 'form-control', id: 'new_stuff_title' %>
</div>
</div>
<%= f.button :submit %>
这里是我的路线设置:
post 'main/newStuff' => 'main#createStuff', as: :stuff_create
P.S.它工作时,我不使用ajax,所以我认为控制器和视图是好的。
答
尝试使用下面的代码:
$.post(url, { title: title }, function() {
alert("success");
})
.done(function(data) {
console.log(data);
})
.fail(function(data) {
console.log(data);
}), dataType: "json");
我认为你需要添加你的dataType
,请参阅本question答案。
你能设置这个'console.log' url和title变量来确保它们是正确的吗? – 2014-09-05 18:32:38
Hi @MohamedYakot,是的,我添加了console.log(url)和console.log(标题)到我的代码和输出是“/ main/newStuff”和正确的字符串我输入到“标题”的形式。 – czphilip 2014-09-05 18:50:09
我看到你的动作叫'createStuff',而不是'newStuff',你忘了改它吗?如果没有请输入'newStuff'动作 – 2014-09-05 18:57:28