我正在尝试在服务工厂中设置一些客户标头。这是代码:
angular.module('clinicalApp').factory('encounterService', function ($resource) {
var EncounterService = $resource('http://localhost:port/v1/providers/:providerId', {providerId:'@id', port: ':8280'}, {
search: {
method: 'GET',
isArray: true,
headers: {
'RemoteUser': 'billybob'
}
}
});
return EncounterService;
});
以下是调用服务的代码。
angular.module('clinicalApp').controller('MainCtrl', function ($scope, encounterService) {
encounterService.search({
limit: 2000,
organizationId : '11110000'
});
});
当我使用这个资源并且一切正常时,但是在ajax调用上没有设置标题,所以我得到了401作为回报。我还需要做些什么来设置标题?谢谢您的帮助。
答案 0 :(得分:2)
我确信我收到的其他答案是工作,但我不想使用$ http,我想使用$ resource。要使用带有自定义标头的资源,我必须升级我的Angular版本。我没有查看源代码以找到原因,我不知道这个功能改变了什么版本。现在我正在使用v1.2.0-rc.2,一切正常。它在app配置中进行了一些更改,即我必须将ngRoute命名为依赖项以使该版本正常工作,但之后我能够像我们应该那样使用$ resource。
答案 1 :(得分:1)
请勿使用run()
,config()
使用$httpProvider
:
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.common = {
'RemoteUser': 'billybob'
};
}])
答案 2 :(得分:0)
clinicalApp.run(function($http) {
$http.defaults.headers.common["Content-Type"] = "application/json, charset=UTF-8";
});