2016-08-03 83 views
1

我在后端使用了带有Play REST服务的AngularJS,我对这两个概念都相当陌生。 我想知道是否有一种方法可以在一个位置写入Basic Auth标头,以便默认将其添加到由Angular创建的每个http请求中。AngularJS - 设置适用于所有http请求的通用Basic Auth标头

现在我在每个请求的开头添加这一行。

$http.defaults.headers.common['Authorization'] = 'Basic ' + Base64.encode(username + ':' + password); 

我希望它只出现在一个地方而不是多个地方,以便于代码维护。 在此先感谢!

回答

2

您可以通过在你的angular.config

var app = angular.module(); 
app.config(['$httpProvider', function($httpProvier){ 

    $httpProvider.interceptors.push(function(){ 

    return { 
    request: function(config) { 
     config.headers.Authorization = YOUR_AUTHORIZATION_HEADER; 
     return config; 
    } 
    } 

    }); 

}]); 
+0

感谢@Robin使用$ HTTP拦截你的答案做到这一点。你能举一个完整的例子吗? –

+0

这是我用于项目的代码。它使用loopback(www.loopback.io)登录,loopback返回一个令牌,并将其保存到localStorage的响应中。根据要求,我将令牌添加到我的验证标题,这会导致我被授权:-) http://pastebin.com/Xr69e4BV –

+1

难题。我添加了我的东西,它的工作:)谢谢你太多了! @Robin –