【发布时间】:2017-02-10 20:38:22
【问题描述】:
我正在尝试在来自角度控制器的发布请求之后从 nodejs 呈现页面。但是,该页面不会加载,它会停留在同一页面上。控制台中没有错误。此外,在浏览器开发工具中,我可以看到在 Network--Preview 部分下加载的页面。 这是正确的还是建议的方式?我想,控件返回到控制器而不是从节点渲染页面。我们如何避免这种情况或者有更好的方法来做到这一点? 任何帮助表示赞赏。
来自控制器的发布请求:
$http({
method : "POST",
url: '/afterSignin',
data: {
"inputUsername": $scope.inputUsername,
"inputPassword": $scope.inputPassword
}
}).success(function(data)
{
if(data.statusCode==401)
{
$scope.msg = "Invalid Username or Password";
}
else
{
console.log(data.statusCode);
console.log("login successfull");
}
服务器端代码(afterSignIn.js)
mysql.fetchData(function(err,results){
if(err){
throw err;
}
else
{
if(results.length > 0){
console.log("valid Login");
res.render('successLogin', { data: results } , function(err, result) {
// render on success
if (!err) {
res.end(result);
}
// render or error
else {
res.end('An error occurred');
console.log(err);
}
});
控制台输出:
连接关闭.. 数据库结果:[对象对象] 有效登录 [0mPOST /afterSignin [32m200 [0m103.425 ms -
【问题讨论】:
-
该渲染将作为对
$http进行的 ajax 调用的响应发送。除非你对那个响应做点什么,否则什么都不会改变。不太清楚你期望发生什么 -
这是一种登录应用程序。用户登录并成功登录后用户应重定向到主页。有没有其他方法可以做到这一点?
-
通常在 Angular 应用程序中通过内部应用程序路由器(单页应用程序)完成。如果您想完全重新加载页面,那么您要么不使用
$http提交并使用浏览器默认表单提交过程,要么在成功回调中执行 javascript 重定向
标签: javascript jquery angularjs node.js