AngularJS $ http发布请求被取消

时间:2014-11-28 17:46:38

标签: angularjs forms post

我试图将帖子表单发送到PHP脚本,每次POST请求都显示为已取消。

enter image description here

我的控制器看起来像这样:

var authenticationControllers = angular.module('authenticationControllers', []);

authenticationControllers.controller('Authentication', ['$scope', '$http', function($scope, $http) {
    $scope.WPlogin = function () {
    var mydata ={ 
                  'action': 'ajaxlogin', 
                  'username': $scope.user.username, 
                  'password': $scope.user.password, 
                  'security-login': pluginParams.nonce,
                  '_wp_http_referer': '/s/play/'
                };

    $http({
      method: 'POST',
      url: $scope.ajaxURL, //This is defined earlier, I'm sure this is valid
      data: jQuery.param(mydata),
      headers: {'Content-Type': 'application/x-www-form-urlencoded'}
      }).success(function(data, status, headers, config) {
        console.log(data.message);
      }).error(function(e){alert('error')});

  };
}]);

表格如下:

   <div class="white-popup mfp-hide" id="login-modal" ng-controller="Authentication">
    <form name="loginform" id="loginform" novalidate>
        <h1>Login</h1>
        <p class="status"></p>
        <label for="username">Username</label>
        <input id="username" type="text" name="username" ng-model="user.username" ng-required="true">
        <label for="password">Password</label>
        <input id="password" type="password" name="password" ng-model="user.password" ng-required="true">
        <a class="lost" href="<?php echo wp_lostpassword_url(); ?>">Lost your password?</a>
        <button class="submit_button" ng-disabled="loginform.$invalid" ng-click="WPlogin()" type="submit" name="submit"> Login</button>    

    </form>
</div>

每当我尝试提交表单时,都会弹出错误提示,但没有控制台错误。然后,页面重新加载,我可以在URL中看到表单参数(如get请求),如果我然后提交表单(不删除get参数),则请求成功。

谁能告诉我我做错了什么?

更新

我在表单中添加了$event.preventDefault();(从表单传递$ event),现在一切都按预期工作了,但我不明白,为什么我需要它?我认为AngularJS会自动阻止表单提交。

0 个答案:

没有答案