帮助,我被困住了!我正在使用Node Express进行CRUD设置但使用AJAX发布请求。我的阅读表格工作正常。
表单有一个输入字段,即查找电子邮件。 AJAX使用以下代码发布表单数据
if ($("#rsvp-search-form").length) {
$("#rsvp-search-form").validate({
rules: {
...
},
messages: {
...
},
submitHandler: function (form) {
$("#loader").css("display", "inline-block");
$.ajax({
type: "POST",
url: "/",
data: $(form).serialize(),
success: function (data, textStatus, jqXHR){
if (typeof data.redirect == 'string')
window.location = data.redirect;
}
,
error: function() {
$( "#loader").hide();
$( "#error").slideDown( "slow" );
setTimeout(function() {
$( "#error").slideUp( "slow" );
}, 5000);
}
});
return false; // required to block normal submit since you used ajax
}
});
}
我有一个到'/'的快速发布路由,它返回res.status(#)。send()的状态,并根据状态#是400还是200执行正确的成功/错误块。
现在在更新表单上我有相同的基本设置和更多表单输入,但是AJAX代码不会通过执行正确的成功或错误块来处理res.status(#)。send()响应,而是只是加载一个新页面,其中包含与处理请求时相同的URL。
AJAX代码请求与顶部类似,但不同于url:
submitHandler: function (form) {
$("#loader").css("display", "inline-block");
$.ajax({
type: "POST",
//The website when loaded has an invitation
//object that is passed by express
url: "/rsvp/" +invitation._id,
data: $(form).serialize(),
dataType: 'application/json'
我确认正确的邮政路线正在运行并收到邀请._id。它返回res.staus(#)。send(),但是ajax不会处理成功或错误块,它只是重定向到请求网址,但实际上并没有呈现网址。
我不知道表单是否还在处理默认操作,如果来自快递的响应不正确等等
我希望我能清楚自己的问题,有人知道我在这里做错了什么。
问候!
答案 0 :(得分:0)
更新!
我得到了它的工作。虽然带有变量的url是正确的并且express正在接收正确的id,但是JS抛出了导致一切崩溃的错误。我从未发现错误,因为页面将重新加载到空白页面并清除控制台。我通过在渲染表单时将id保存在隐藏字段中来修复它并使用它。似乎解决了这个问题。
感谢您的期待!