发送邮件请求表达而不更改网址

时间:2016-08-16 08:58:06

标签: angularjs node.js express

我正在尝试登录表单。我正在使用angularjs'ng-submit。单击提交按钮时,我希望在服务器中调用post方法而不更改URL。

快递的post需要一个响应的网址。如果我的登录屏幕的网址为http://localhost:2000/login,并且在点击提交时,我希望为同一网址post调用http://localhost:2000/login

我不明白如何使用url的{​​{1}}密钥。

登录html:

$http

控制器:

<form ng-controller="loginController" ng-submit="loginFunc()">
<input type="text" name="" ng-model="login">
<input type="password" ng-model="password" name="">
<input type="submit" value="login" name="">

server.js:

.controller('loginController', function($scope, $http) {
  $scope.login = ""
  $scope.password = "";
  $scope.loginArray = [];
  $scope.loginFunc() {
    $scope.loginArray.push($scope.login);
    $scope.loginArray.push($scope.password);
    $http({
      method: 'POST',
      url: 'loginClick',
      data: $scope.loginArray
    })
  }
})

1 个答案:

答案 0 :(得分:0)

您应该将POST数据作为对象发送,而不是作为数组发送,如果不表达,则不知道哪个param具有哪个值。

另外,像“登录点击”这样的字符串&#39;不起作为网址。

尝试类似:

$scope.loginFunc = function(){
        $http({
            method:'POST',
            url:'/login',
            data: {
               login: $scope.login,
               password: $scope.password
            }
        })
    }

不是100%肯定是&#39; / login&#39;对于url是足够的,如果不是尝试使用端口等指定绝对URL

如果您想发布到&#39; / login&#39;,您还必须调整您的快速路线:

app.post('/login', function(request,response) {
    console.log(JSON.stringify(request.body)+"req");
})