Back to Sails

`res.redirect()`

docs/reference/res/res.redirect.md

12.12.20003.1 KB
Original Source

res.redirect()

Redirect the requesting user agent to the given absolute or relative URL.

Usage

usage
return res.redirect(url);

Or:

  • return res.redirect(statusCode, url);

Arguments

ArgumentTypeDetails
1statusCode((number?))An optional status code (e.g. 301). (If omitted, a status code of 302 will be assumed.)
2url((string))A URL expression (see below for complete specification).
e.g. "http://google.com" or "/login"

Details

Sails/Express support a few forms of redirection:

  • A fully qualified URI for redirecting to a different domain:
javascript
return res.redirect('http://google.com');
javascript
return res.redirect('/checkout');
javascript
return res.redirect('..');
  • A back redirect, which allows you to redirect a request back from whence it came from using the "Referer" (or "Referrer") header (if omitted, redirects to / by default):
javascript
return res.redirect('back');

Notes

  • This method is terminal, meaning that it is generally the last line of code your app should run for a given request (hence the advisory usage of return throughout these docs).
  • As of Sails v1.x, for HTTP requests, res.redirect() does not respect the status code established by res.status(). Thanks @Guillaume-Duval and @oshatrk!
  • When your app calls res.redirect(), Sails sends a response with status code 302, indicating a temporary redirect. This instructs the user agent to send a new request to the indicated URL. There is no way to force a user agent to follow redirects, but most clients play nicely.
  • In general, you should not need to use res.redirect() if a request "wants JSON" (i.e. req.wantsJSON).
  • If a request originated from the Sails socket client, it always "wants JSON", so the Sails socket client does not follow redirects. For this reason, if an action is called via a WebSocket request using (for example) io.socket.get(), it will simply receive the appropriate status code and a "Location" header indicating the location of the desired resource. It’s up to the client-side code to decide how to handle redirects for WebSocket requests.
<docmeta name="displayName" value="res.redirect()"> <docmeta name="pageType" value="method">