在Node.js中redirect到不同的页面url(不在express或其他框架中)
我想将用户从一个页面redirect到Node.js中的另一个页面(普通的node.js)
真实生活场景:成功注册后(example.com/sigup),我想将用户redirect到login页面(example.com/login)。
if (signUpSuccessful(request, response)) { // I want to redirect to "/login" using request / response parameters. }
这很简单:
if (signUpSuccessful(request, response)) { response.statusCode = 302; response.setHeader("Location", "/login"); response.end(); }
这会将您的用户redirect到302 Found
状态的/login
URL并完成响应。 确保你以前没有调用过response.write()
,否则会抛出exception。
最简单的方法是使用302状态码和位置字段与目标URL。
HTTP响应状态码302 Found是执行redirect的常用方法。
具有此状态代码的HTTP响应将在“位置”标题字段中额外提供一个URL。 用户代理(例如networking浏览器)通过该代码的响应被邀请对位置字段中指定的新URL进行第二次(否则相同的)请求。 HTTP / 1.0规范(RFC 1945)定义了这个代码,并给出了描述短语“Moved Temporarily”。
来源:维基百科
res.statusCode = 302; res.setHeader("Location", '/login'); res.end();
一个更简单的方法:
res.redirect(307, '/login');
在这篇文章的答案中find更多的细节