AngularJS $ http.get(...)。成功不是函数吗?

时间:2018-02-02 21:17:35

标签: javascript angularjs spring-boot angularjs-scope angular-ui

我试图将代码从angularjs 1.4.8更新到1.6.6,这意味着我得到了一个错误,因为.success和.error现已被弃用了......我'我尝试使用谷歌搜索和跟踪stackoverflow上的现有示例,但它似乎并没有适用于我的代码。某种灵魂可以帮助我提出改变以下功能的建议:

$scope.login = function() {
    // creating base64 encoded String from user name and password
    var base64Credential = btoa($scope.username + ':' + $scope.password);
    // calling GET request for getting the user details
    $http.get('user', {
        headers : {
            // setting the Authorisation Header
            'Authorization' : 'Basic ' + base64Credential
        }
    }).success(function(res) {
        $scope.password = null;
        if (res.authenticated) {
            $scope.message = '';
            // setting the same header value for all request calling from
            // this application
            $http.defaults.headers.common['Authorization'] = 'Basic ' + base64Credential;
            AuthService.user = res;
            $rootScope.$broadcast('LoginSuccessful');
            $state.go('workbench');
        } else {
            $scope.message = 'Login Failed!';
        }
    }).error(function(error) {
        $scope.message = 'Login Failed!';
    });
};

2 个答案:

答案 0 :(得分:0)

使用

  • then代替success
  • catch代替error

因为它现在是一个更标准的承诺界面。

答案 1 :(得分:0)

您可以实现.then(success_function(),error_function())而不是.success和.error。

$http.get(...).then(f1,f2);