为什么以下不起作用?
res.send({
successMessage: 'Task saved successfully.'
});
res.redirect('/');
我基本上需要针对AJAX请求的successMessage。当请求是标准的发布请求(非AJAX)时,重定向是必要的。
以下方法对我来说似乎不太干净,因为我不想关心后端的前端技术:
if(req.xhr) {
res.contentType('json');
res.send({
successMessage: 'Aufgabe erfolgreich gespeichert.'
});
} else {
res.redirect('/');
}
答案 0 :(得分:6)
您可以使用状态代码指示您的任务已保存,然后重定向。试试这个:
res.status(200);
res.redirect('/');
OR
res.redirect(200, '/');
因为AJAX知道成功或失败代码,所以例如如果你发送404,AJAX成功函数将不会执行
答案 1 :(得分:1)
第一个代码段不起作用,因为res.send
已经发送了标题,因此res.redirect
之后根本就不可能。
第二个片段应该有用。基本上,它的作用是检查请求是否为AJAX(然后返回JSON),否则会发生重定向。