表单的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
不应该。