AngularJS Post 404错误请求错误

时间:2015-09-09 17:38:04

标签: javascript angularjs

我是AngularJS的新手,我很遗憾。在提交表单时,我收到错误消息:POST http://prerelease.vidaexpress.com/api/account/token 400(错误请求)。当我尝试提交表单时发生错误。也许有人可以帮助我。我的部分服务如下:

})();

这是我的控制器:

(function () {
'use strict';

angular
    .module('vidaexpress')
    .service('accountService', accountService);

accountService.$inject = ['$http', '$window', '$rootScope', 'apiUrl'];

function accountService($http, $window, $rootScope, apiUrl) {
    var baseUrl = apiUrl.account;
    var cookieUser;
    var sessionName = 'userInfo';

    this.logIn = logIn;
    this.logOut = logout;
    this.signUp = signUp;
    this.setUserInfo = setUserInfo;
    this.getUserInfo = getUserInfo;
    this.confirm = confirm;
    this.recoveryPassword = recoveryPassword;
    this.resetPassword = resetPassword;
    this.sendVerifyEmail = sendVerifyEmail;

    function logIn(credential) {
        return $http({
            method: 'POST',
            url: baseUrl + 'token',
            headers:{ 'Content-Type': 'application/x-www-form-urlencoded' },
            transformRequest: function (obj) {
                var str = [];
                for (var p in obj)
                    str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
                return str.join("&");
            },
            data: {
                grant_type: 'password',
                email: credential.email,
                password: credential.password
            }
        }).then(function (response) {
            if (!response) {
                return { error: 'System Error' };
            } else if (response.error) {
                return { error: response.error };
            } else {
                return response.data;

            }
        }, function (error) {
            return { error: 'System Error' };
        });
    }
    function logout() {
        return $http.post(baseUrl + 'logout');
    }
    function signUp(userInfo) {
        return $http.post(baseUrl + 'signup', userInfo);
    }
    function setUserInfo(userInfo) {
        cookieUser = userInfo;
        $rootScope.currentUser = userInfo;
        $window.sessionStorage.setItem(sessionName, JSON.stringify(userInfo));
    }
    function getUserInfo() {
        if (!cookieUser) {
            cookieUser = JSON.parse($window.sessionStorage.getItem(sessionName));
        }
        return cookieUser;
    }
    function confirm(customerId, token) {
        $http.get(baseUrl + 'verifyEmail?id=' + customerId + '&token=' + token);
    }
    function recoveryPassword(email) {
        return $http.get(baseUrl + 'recoveryPassword?email=' + email).then(function (response) {
            return null;
        }, function () {
            return { error: 'System Error.' };
        });
    }
    function resetPassword(model) {
        return $http.post(baseUrl + 'resetPassword', model).then(function () {
            return null;
        }, function(){
            return { error: 'System Error' };
        });
    }
    function sendVerifyEmail() {
        return $http.get(baseUrl + 'sendVerifyEmail').then(function (response) {
            return null;
        }, function () {
            return { error: 'System Error.' };
        });
    }
}

以下是我的观点:

(function () {
'use strict';

angular
    .module('vidaexpress')
    .controller('accountController', accountController);

accountController.$inject = ['$rootScope', '$state', '$stateParams', 'accountService', 'facebookService', 'toastr'];

function accountController($rootScope, $state, $stateParams, accountService, facebookService, toastr) {
    var vm = this;
    vm.logIn = logIn;
    vm.signUp = signUp;
    vm.signOut = signOut;

    vm.facebookLogin = facebookLogin;
    vm.facebookLogout = facebookLogout;

    vm.recoveryPassword = recoveryPassword;
    vm.resetPassword = resetPassword;
    vm.sendVerifyEmail = sendVerifyEmail;


    function logIn(loginform) {
        vm.signinloading = true;
        accountService.logIn(loginform)
        .then(function (response) {
            if (response && response.error) {
                toastr.error(response.error);
            } else {
                vm.login = {};
                vm.submit = false;
                accountService.setUserInfo(response);
                if (!$rootScope.returncust) {
                    window.sessionStorage.setItem('returncust', true);
                }
                vm.isAccountOpen = false;
            }
        }, function (error) {
            toastr.error(error.error);
        }).finally(function () {
            vm.signinloading = false;                
        });
    }
    function signUp(signupform) {
        vm.signuploading = true;
        accountService.signUp(signupform)
        .then(function (response) {
            if (response && response.error) {
                toastr.error(response.error);
            } else {
                accountService.logIn(signupform).then(function (response) {
                    accountService.setUserInfo(response);
                    $state.go('main.index');
                }, function(error) {
                    toastr.error(error.error);
                });
            }
        },function (error) {
            toastr.error('System Error');
        }).finally(function () {
            vm.signuploading = false;

        });
    }
    function signOut() {
        //Log out Facebook
        var userInfo = accountService.getUserInfo();
        if (userInfo.facebookLogin) {
            facebookLogout();
        }
        //Log out UI
        accountService.setUserInfo(null);
        vm.isAccountOpen = false;
        $state.go('main.index');
    }
    function facebookLogin() {
        facebookService.login().then(function (response) {
            if (response.status == 'connected' && $state.current.name == 'landing.index') {
                $state.go('main.index');
            } else {
                vm.isAccountOpen = false;
            }
        });
    }
    function facebookLogout() {
        facebookService.logout();
    }
    function recoveryPassword(email) {
        accountService.recoveryPassword(email).then(function (response) {
            if (response && response.error) {
                toastr.error(response.error);
            } else {
                toastr.success('An email has been sent.');
            }
        }, function () {
            toastr.error('System Error');
        });
    }
    function resetPassword(model) {
        model.customerId = $stateParams.id;
        model.token = $stateParams.token;
        accountService.resetPassword(model).then(function (response) {
            if (response && response.error) {
                toastr.error(response.error);
            } else {
                toastr.success('Your password has been reset.');
            }
        }, function () {
            toastr.error('System Error');
        });
    }
    function sendVerifyEmail() {
        accountService.sendVerifyEmail().then(function (response) {
            if (response && response.error) {
                toastr.error(response.error);
            } else {
                toastr.success('Email has sent');
            }
        }, function () {
            toastr.error('System Error');
        });
    }
}
})();

2 个答案:

答案 0 :(得分:0)

这很可能来自您要发布到的网址。你能检查一下你发送给它的脚本吗? 404不是javascript错误,而是您将其发布到的位置。

答案 1 :(得分:0)

来自服务器端的错误,状态代码404表示" NOT FOUND"。您要求的资源不存在,所以请检查您的令牌是否正确