res.send(),然后res.redirect() [英] res.send(), then res.redirect()

查看:337
本文介绍了res.send(),然后res.redirect()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为什么以下不起作用?

  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('/');
}


解决方案

您可以使用状态码表示您的任务已保存,然后重定向。尝试这样:

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

  res.redirect(200,'/');因为AJAX知道成功或失败的代码,所以例如如果你发送404,AJAX成功函数将不执行


Why is the following not working?

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

I basically need the successMessage for AJAX requests. The redirect is necessary when the request is a standard post request (non-AJAX).

The following approach doesn't seem to be very clean to me as I don't want to care about the frontend-technology in my backend:

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

解决方案

You can use a status code to indicate that your task was saved and then redirect. Try this:

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

OR

res.redirect(200, '/');

Because AJAX knows success or failure codes, so for example if you'll send 404, AJAX success function won't execute

这篇关于res.send(),然后res.redirect()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆