我想通过我的 Angular 前端向 expressjs 后端发出对特定 url 的获取请求,如果我这样做,现在在我的前端:-
<li>
<a ng-click="givequiz()">GiveQuiz</a>
</li>
我的 Angular 代码是:-
$scope.givequiz=function(){
console.log("give quiz");
$http.get('/home/givequiz').then(function(res){
//request is going fine and all
});
}
上面的东西是有效的,但我得到的响应是一个对象,完整的文件和 url 没有改变。
但是如果我做这个表格 get thing :-
<li>
<form action="http://localhost:8000/home/givequiz" method="GET">
<button type="submit">Give Quiz</button>
</form>
</li>
这会将我带到一个名为“http://localhost:8000/home/givequiz”的新网址 但是 $http.get 不是为什么会这样?两种方法不一样吗?这就是我处理这两个请求的方式。
router.get('/givequiz', function(req, res, next) {
console.log("in getquiz");
//always gets printed ^ means all reqs come here
res.sendFile('/givequiz.html',{ root: client });
});
Any help will be much appreciated.
最佳答案
听起来您的代码运行良好。 Angular 在幕后发出 AJAX 类型的请求。如果您想在响应成功返回时更改路由,您应该这样做:
$http.get('/home/givequiz').then(function(res){
// request is going fine and all
$state.go(nameOfState)
});
您也可以在 then resolve block 中设置 window.location
,但这可能会导致页面刷新,而 state.go
则不会。
关于javascript - 表单的 get 方法与 Angular $http.get 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47207189/