首页 > 解决方案 > 当 data = false 但状态码返回 200 时解析 $http 承诺对象

问题描述

我有一个$http service检查用户是否存在于数据库中。问题是即使用户不存在并且data = false,状态码仍然返回 200

       videoStoreApp.factory('UserApi', function($http){

        var myService = {};

        myService.login = function(username,password){
               return $http({
               method: 'GET',
               url: 'app/services/user/getUser.php',
               params: {username: username,
                        password: password}
           }).then(function(data){

                   var obj = {
                    complete: true,
                    data: data.data
                   };
               if(obj.data === false)
               {
                   return false;

               }

                return obj;
           });

        };    
        return myService;

下面是我的 loginModal 服务代码。如果用户登录失败,我想阻止转换的发生。

       videoStoreApp.service('loginModal', function ($uibModal, $rootScope) 
           {

          function assignCurrentUser (user) {
            $rootScope.currentUser = user;
           return user;
          }

          return function() {
            var instance = $uibModal.open({
              templateUrl: 'app/views/loginModalTemplate.html',
              controller: 'LoginModalCtrl',
               controllerAs: 'LoginModalCtrl'
            });

            return instance.result.then(assignCurrentUser);

            };

            });

标签: angularjs

解决方案


推荐阅读