res.send(), then res.redirect()

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


The first snippet doesn't work because res.send sends headers already, so the res.redirect after that simply impossible.

The second snippet should work. Basically, what it does is a check if the request is AJAX (then returns JSON), otherwise redirection takes place.

链接地址: http://www.djcxy.com/p/77178.html

上一篇: neo4j只能在内存中运行吗?

下一篇: res.send(),然后res.redirect()