表单的get方法vsangular$ http.get请求

我想通过我的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不会改变,所有。

但是,如果我做forms得到的东西: –

 <li> <form action="http://localhost:8000/home/givequiz" method="GET"> <button type="submit">Give Quiz</button> </form> </li> 

这需要我一个新的URL称为“ 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在幕后制作了一个AJAXtypes的请求。 如果您想在响应成功返回时更改路由,则应该执行以下操作:

 $http.get('/home/givequiz').then(function(res){ // request is going fine and all $state.go(nameOfState) }); 

你也可以在当时的parsing块中设置window.location ,但是这会导致页面刷新,而state.go不应该。