首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$http.defaults.headers in Angular2

$http.defaults.headers in Angular2
EN

Stack Overflow用户
提问于 2016-07-04 09:32:47
回答 1查看 672关注 0票数 1

我正在使用JWT进行授权。在AngularJS 1.x中,我使用以下函数登录:

代码语言:javascript
复制
    function login(username, password) {
        var deferred = $q.defer();

        $http.post("/api/login", {
            "username": username,
            "password": password
        }).then(function(response) {
            if (response.data && response.data.token) {
                var tokenBegin = response.data.token.substring(0,6);
                var bearer = (tokenBegin === 'Bearer') ? '' : 'Bearer ';
                $http.defaults.headers.common.Authorization = bearer + response.data.token;
                deferred.resolve({ status: true, message: 'Login complete' });
            } else {
                deferred.reject(response);
            }
        }, function(reason) {
            deferred.reject(reason)
        });

        return deferred.promise;
    }

即修改$http.defaults对象。在Angular2和TypeScript方面,我有点不知所措,因为Http类似乎没有defaults对象。我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-04 09:39:29

有几种方法可以做到这一点:

  • 您可以实现自己的BaseRequestOptions类: 从‘@ BaseRequestOptions /http’导入{BaseRequestOptions、RequestOptions、RequestOptionsArgs};导出类AppRequestOptions扩展BaseRequestOptions{构造函数{}{ options.url = 'https://www.test.org‘+ options.url;返回super.merge(选项);}} 我以这样的方式注册: 引导(App,HTTP_PROVIDERS,provide(RequestOptions,{useClass: AppRequestOptions}) );
  • 扩展Http (或XHRBackend)类本身: @Injectable()导出类CustomHttp扩展Http {构造函数(后端: ConnectionBackend,defaultOptions: RequestOptions) {Super(后端,defaultOptions);}请求(url: string请求,options?:RequestOptionsArgs):可观察的{console.log(‘Request .’);返回super.request(url,options).catch(res => { // do });} get(url: string,options?:RequestOptionsArgs):可观察的{console.log(‘get.’);返回super.get(url,options).catch(res => { // do });} 并按以下方式登记: 引导(AppComponent,[HTTP_PROVIDERS,新提供者(Http,{ useFactory:(后端: XHRBackend,defaultOptions: RequestOptions) => new CustomHttp(后端,defaultOptions),deps: XHRBackend,RequestOptions }) ]);

见以下问题:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38181319

复制
相关文章

相似问题

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