express使用ajax提交表单失败,app.post无效
代码
// 在模板文件发起ajax提交表单的请求
$.ajax({
url: '/process',
type: 'POST',
data: $(this).serialize(),
success: function(data) {
if (data.success) {
$container.html('<h2>Thank you!</h2>');
} else {
$container.html('There was a problem.');
}
},
error: function() {
$container.html('There was a problem!');
}
});
// 在app.js中使用app.post做处理
app.post('/process', function(req, res){
if(req.xhr || req.accepts('json,html')==='json'){
res.send({ success: true });
} else {
res.redirect(303, '/thankyou');
}
});
然而,结果却是:There was a problem!
打开FF,显示的是:
明明使用了app.post做请求处理了,哪里出错了呢?如何解决?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
错误把app.post放在了app.use(req, res, next)中间件函数后面,导致app.post无法处理post请求。解决方法:只要把app.post放在中间件函数之前就可以了。后续的理解:只要返回了404,就应该想到是“请求的东西,你没有给我”。因此一般来说都是处理请求那一块代码出错了。