res.send(),然后res.redirect()

为什么以下不工作?

res.send({ successMessage: 'Task saved successfully.' }); res.redirect('/'); 

我基本上需要用于AJAX请求的successMessage。 当请求是标准的发布请求(非AJAX)时,redirect是必要的。

下面的方法对我来说似乎不是很干净,因为我不想关心后端的前端技术:

 if(req.xhr) { res.contentType('json'); res.send({ successMessage: 'Aufgabe erfolgreich gespeichert.' }); } else { res.redirect('/'); } 

       

网上收集的解决方案 "res.send(),然后res.redirect()"

您可以使用状态码来指示您的任务已保存,然后redirect。 尝试这个:

 res.status(200); res.redirect('/'); 

要么

 res.redirect(200, '/'); 

因为AJAX知道成功或失败的代码,所以例如,如果你发送404,AJAX成功function将不会执行

第一个片段不工作,因为res.send已经发送头,所以res.redirect之后根本不可能。

第二个片段应该工作。 基本上,它做的是检查请求是否是AJAX(然后返回JSON),否则redirect发生。