首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Satellizer和angular.js没有在报头中发送令牌

Satellizer和angular.js没有在报头中发送令牌
EN

Stack Overflow用户
提问于 2015-09-08 09:23:34
回答 1查看 898关注 0票数 1

我正在使用angular.js和卫星程序在REST上进行JWT身份验证。

身份验证工作正常,页面在3个状态内发送授权头。这是我的州服务提供者:

代码语言:javascript
运行
复制
$stateProvider
            .state('auth', {
                url: '/auth',
                templateUrl: '/views/login.html',
                controller: 'AuthController as auth'
            })
            .state('dashboard', {
                url: '/dashboard',
                templateUrl: '/views/dashboard.html',
                controller: 'DashboardController as dash'
            })
            .state('mitglieder', {
                url: '/mitglieder',
                templateUrl: '/views/mitglieder.html',
                controller: 'MitgliederController as mitglieder'
            })
            .state('neuesMitglied', {
                url: '/neuesMitglied',
                templateUrl: '/views/neuesMitglied.html',
                controller: 'NewMitgliederController as newMitglied'
            })
            .state('users', {
                url: '/users',
                templateUrl: '/views/main.html',
                controller: 'UserController as user'
            });
    });

但是,在状态'neuesMitglied‘内部,它突然不再发送授权头,并被rest拒绝。我的NewMitgliederController看起来是这样的:

代码语言:javascript
运行
复制
(function() {

'use strict';

angular
    .module('authApp')
    .controller('NewMitgliederController', NewMitgliederController);

function NewMitgliederController($auth, $state, $http, $rootScope, $scope) {

    var vm = this;

    vm.error;
    //vm.toAdd;
    //vm.rawImage;

    //Fetched Data
    vm.fetchedData;

    var fetchData = function() {

        $http.get('APIv1/Beitragsgruppen/list/').success(function (data) {
            vm.fetchedData.mitgliedsgruppen = data;

        }).error(function (error) {
            vm.error = error;
        });


    }


    angular.element(document).ready( function(){
        $('#mainNav ul, #mainNav li').removeClass('active');
        $('#mitgliederNav').addClass('active');
        fetchData();

    } );
  }
})();

为什么它不是在这个控制器内工作,而是在所有其他控制器中,使用授权头的$http.get列表?

编辑

我跟踪了一下这个行为,发现有东西正在移除由satellizer拦截器设置的“授权”头(对于这个控制器请求,这个方法被触发,这个标头实际上是由satellizer拦截器添加的,但是它后来被删除了,我不知道在哪里,因为我没有接触任何头数据或者有自己的拦截器).是虫子吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-02 14:42:51

试试这个:

代码语言:javascript
运行
复制
(function() {

'use strict';

angular
    .module('authApp')
    .controller('NewMitgliederController', NewMitgliederController);

function NewMitgliederController($http, $scope) {

    var vm = this;

    vm.error = {};
    vm.fetchedData = {};

    fetchData();

    function fetchData() {

        $http.get('APIv1/Beitragsgruppen/list/').then( function(res) {
            vm.fetchedData.mitgliedsgruppen = res;
            $('#mainNav ul, #mainNav li').removeClass('active');
            $('#mitgliederNav').addClass('active');
        }, function(err) {
            vm.error = err;
        });
    }
  }
})();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32453964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档