【问题标题】:AngularJS set header on every requestAngularJS 在每个请求上设置标头
【发布时间】:2014-07-16 11:50:14
【问题描述】:

我正在尝试设置一个标头以在每个请求上发送一个访问令牌。这是我尝试过的:

.factory("TokenRestangular", "StorageService", function (Restangular, StorageService) {
    return Restangular.withConfig(function (RestangularConfigurer) {


        // Set access token in header.
        RestangularConfigurer.setDefaultHeaders({Authorization:'Bearer '+ StorageService.get("access_token")});
        RestangularConfigurer.setBaseUrl('/api');
    });
})

我得到错误:

Error: [ng:areq] http://errors.angularjs.org/1.2.19/ng/areq?p0=fn&p1=not%20aNaNunction%2C%20got%string
    at Error (native)
    at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js:6:450
    at Bb (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js:19:68)
    at Ua (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js:19:155)
    at rc (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js:32:423)
    at Object.d [as invoke] (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js:34:398)
    at http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js:36:288
    at c (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js:34:305)
    at d (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js:35:6)
    at Object.instantiate (http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js:35:165) 

【问题讨论】:

    标签: angularjs restangular


    【解决方案1】:

    我认为你的工厂函数传递的参数太多,试试这个:

        .factory("TokenRestangular", function (Restangular, StorageService) {
            return Restangular.withConfig(function (RestangularConfigurer) {
            // Set access token in header.
            RestangularConfigurer.setDefaultHeaders({Authorization:'Bearer '+ StorageService.get("access_token")});
            RestangularConfigurer.setBaseUrl('/api');
        });
    })
    

        .factory("TokenRestangular", ["Restangular", "StorageService", function (Restangular, StorageService) {
            return Restangular.withConfig(function (RestangularConfigurer) {
            // Set access token in header.
            RestangularConfigurer.setDefaultHeaders({Authorization:'Bearer '+ StorageService.get("access_token")});
            RestangularConfigurer.setBaseUrl('/api');
        });
    }])
    

    如果你想拥有安全的缩小代码。

    【讨论】:

    • 我的问题是我会随着时间的推移刷新令牌,我成功获得了新令牌,但是当我运行另一个 RESTful API 时,它使用的令牌仍然是旧的。
    • @aokaddaoc 我也遇到了同样的问题。你解决了吗?
    • @bitmind 是的,我愿意。 jsfiddle.net/hcq8sx7p/1希望能解决你的问题~
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 2014-08-23
    • 2018-12-08
    • 2017-12-02
    • 2021-07-16
    • 1970-01-01
    • 2019-02-20
    相关资源
    最近更新 更多