javascript - 表单的 get 方法与 Angular $http.get 请求

标签 javascript angularjs node.js 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 没有改变。

但是如果我做这个表格 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/

相关文章:

jquery - 取消绑定(bind) ng-click 以 Angular 动态 dom 元素

javascript - 如何使用 PyQT 在 GUI 中播放 MP3

javascript - Jquery 数据表搜索

node.js - 连续 "hot"部署有 Angular 的 Web 应用程序

javascript - Angularjs 使用 momentjs 获取总时间

mysql - Expressjs - 无法在 session 变量中设置未定义的属性 'userId'

Node.js express 、路由器和压缩

javascript - 从 PHP 返回多个值到 JS 函数 (AJAX/SQL)

javascript - 按数字处理输入字段

javascript - 如何在 NodeJS 中维护请求 session