Redirect the requesting user-agent to the given absolute or relative url.
return res.redirect(statusCode, url);
|1||statusCode||An optional status code (e.g. 301). (If omitted, a status code of 302 will be assumed.)|
|2||url||A URL expression (see below for complete specification).
Sails/Express support a few forms of redirection, first being a fully qualified URI for redirecting to a different domain:
Pathname relative redirects are also possible. If you were on http://example.com/admin/post/new, the following redirect would land you at http//example.com/admin/post:
The final special-case is a back redirect, which allows you to redirect a request back where it came from using the "Referer" (or "Referrer") header (if omitted, redirects to
/ by default)
- This method is terminal, meaning it is generally the last line of code your app should run for a given request (hence the advisory usage of
returnthroughout 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.
- If a request originated from the Sails socket client, it always "wants JSON". Thus the Sails socket client does not follow redirects, so 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.