我在向外部web api发送authorization header时遇到了问题,如果没有提供这样的header,这将是一个挑战。
在下面的代码中,我尝试将默认标头设置为包含基本的auth标头,但是当我查看Fiddler时,它告诉我从一开始就不存在authorization标头,因此api调用被拒绝为未经授权。
有没有人知道这是不是Restangular中的一个bug,或者我尝试编写auth头文件的方式中是否缺少一些东西?
angular.module('MyAPIService', ['restangular']).factory('MyAPIService', function (Restangular) {
Restangular.setBaseUrl('http://mywebapi/api/');
var encoded = Base64.encode(username + ":" + password);
Restangular.setDefaultHeaders({ Authorization: 'Basic ' + encoded });
return Restangular.one('users', username).get();
发布于 2014-10-03 11:03:49
尝试在配置块中设置标头(不确定工厂)。我的代码如下所示:
angular.module('app', ['restangular'])
.config(['RestangularProvider', function (RestangularProvider) {
// ... some code here
RestangularProvider.setDefaultHeaders({
token: 'some-secret-token'
// other headers
});
// ... some code here
}]);
对我来说很管用。
发布于 2015-01-24 15:02:41
事实证明,问题在于所有印前检查的Authorization标头都是空的(即)选项请求。(要了解它们,请参阅[https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS]中关于预置请求的部分。因此,由于我能够控制API的基本身份验证处理,因此我使API不会对此类印前检查请求发出401质询。Authorization标头出现在非印前检查请求(GET、POST、PUT、DELETE)上。
https://stackoverflow.com/questions/25750397
复制