Adal Interceptor 没有 return 回调到 ajax 调用

Adal Interceptor doesnt return the call back to the ajax call

我在我的 angular js 应用程序中使用 AdalJs,当我访问外部 API 时,adal 拦截器检查我的资源是否存在于会话存储中,如果存在则进行获取令牌调用它不存在于会话存储中。检索到令牌后,它会使用该资源的新令牌更新会话存储,但控制不会返回到 ajax 调用并且调用者会卡在 there.If 我再次刷新页面我我能够从永恒 API 中获取数据,因为它现在能够从会话存储中获取数据。我在这里遗漏了什么吗?

sampleApp.config(['$routeProvider', '$httpProvider', 'config', 'adalAuthenticationServiceProvider', function ($routeProvider, $httpProvider, config, adalProvider) {
        $routeProvider

            // route for the home page
            .when('/home', {
                templateUrl : 'pages/home.html',
                controller  : 'mainController',
            })
            .when('/userInfo', {
                templateUrl : 'pages/userInfo.html',
                controller  : 'userInfoController',
                requireADLogin: true,
            })
            .when('/apiData', {
                templateUrl : 'pages/apiData.html',
                controller  : 'apiDataController',
                requireADLogin: true,
            }).otherwise({ redirectTo: "/home" });


    adalProvider.init({
        instance: config.instance, 
        tenant: config.tenant, //adfs
        clientId: config.clientId,
        extraQueryParameter: config.extraQueryParameter, 
        endpoints : config.endpoints,
        redirectUri : config.redirectUri,
    },
        $httpProvider);
    }]);

    sampleApp.controller('apiDataController', function($scope, adalAuthenticationService, $http, config) {
    $scope.message = 'Fetching data from the API:';
    $scope.userInfo = adalAuthenticationService.userInfo;

        var client = $http({
            method: 'GET', 
            url: config.apiURL, 
            headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }

        });

        client.then(function(data){
            console.log(data);
            $scope.message = "Data is fetched from the API with Access Token";

            $scope.apiData = data.data;
        }, function(data) {
            console.log(data)
            $scope.message = data.data;
        });

});

你的代码是正确的,当我们将 Azure AD 集成到一个 AngularJS 单页应用程序时,我们需要确保 adal.js 和 Angular.js 是相同的版本,版本不匹配可能造成潜在问题。