0

我正在尝试在服务工厂中设置一些客户标头。这是代码:

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 作为回报。我还需要做什么来设置标题?谢谢您的帮助。

4

3 回答 3

2

我确信我收到的其他答案有效,但我不想使用 $http,我想使用 $resource。要使用带有自定义标头的资源,我必须升级我的 Angular 版本。我没有查看源代码来查找原因,并且我不知道此功能更改了哪个版本。现在我正在使用 v1.2.0-rc.2 并且一切正常。在应用程序配置中进行了一些更改,即我必须将 ngRoute 命名为依赖项以使版本工作,但随后我能够像我们应该做的那样使用 $resource。

于 2013-10-10T09:50:18.043 回答
1

不要使用run()config()与 一起使用$httpProvider

app.config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.headers.common = {
        'RemoteUser': 'billybob'
    };
}])
于 2013-10-09T06:59:30.220 回答
0
clinicalApp.run(function($http) {
    $http.defaults.headers.common["Content-Type"] = "application/json, charset=UTF-8";
});
于 2013-10-08T18:42:26.380 回答