我需要一个硬编码的密码保护页面。我使用 href 以/admin/user/password 的身份重定向到页面:
<a ng-href="/admin/{{user}}/{{password}}" class="form-control btn btn-primary" >Submit</a>
我正在使用角度$scope.user和$scope.password作为输入字段的ng模型。此请求由 Express route.get 函数捕获:
app.route('/admin/:user/:password')
.get(admin.renderAdmin);
下面是我的admin.renderAdmin页面:
exports.renderAdmin = function (req, res) {
console.log("Requested with username and password");
if (req.params.user === "*******" && req.params.password === "******") {
res.location('/admin');
res.render('admin');
} else {
res.send(null);
}
};
/admin 是我需要的 URL,admin.ejs 存储我要在此 URL 上呈现的 HTML。
我得到的输出是页面呈现 admin.ejs,但网址没有改变,它与 href 相同。
请帮助我解决我可能在这里做错了什么。提前谢谢。
也许尝试使用回调渲染?
// if a callback is specified, the rendered HTML string has to be sent explicitly
res.render('admin', function(err, html) {
res.location('/admin');
res.send(html);
});
此外,如果您希望页面实际更改,则应使用 res.redirect()
而不是 res.location()
。