угловой $ http против фабрики, чтобы вызвать запрос http

0

Может кто-то указать, почему эти два кода работают не так? $http.post запрос отлично работает и дает мне response обратно с другой стороны, используя фабрику для того чтобы сделать post запрос, он дает мне [объект объект] ответ, но сеть полезной нагрузки показывает username и password.

HTML:

<input type="text" class="form-control" id="username" placeholder="Username" ng-model="vm.userlogin.username">

<input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password" ng-model="vm.userlogin.password">

прямо с контроллера:

$http.post('/api/login/', vm.userlogin).success(function(response){
            localStorage.setItem('key', response);
            $rootScope.isLoggedIn = true;
            $location.path('/dashboard');
        }).error(function(error){
            console.log('err');
        });

с использованием фабрики:

signupService.login(vm.userlogin.username, vm.userlogin.password)
            .then(function(response){
                console.log(response);
                localStorage.setItem('key', response);
                $rootScope.isLoggedIn = true;
                $location.path('/dashboard');
        });

логин завод:

function _login(username, password){
        var data = {
            username: username,
            password: password
        };
        return $http({
            method: 'POST',
            url: '/api/login/',
            data: data
        });
    };
  • 2
    Когда вы используете .then() , вам не нужно использовать response.data для получения реальных данных?
  • 0
    что да, черт возьми, это было просто :( спасибо.
Теги:

1 ответ

1

объект response в первом, а then() $http обещание - это не то же самое, что и при success(). Ваши данные в data собственности его

Попробуйте использовать response.data

Ещё вопросы

Сообщество Overcoder
Наверх
Меню