Angular js-在ngResource中设置标头

时间:2013-10-08 18:26:43

标签: javascript angularjs

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

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

3 个答案:

答案 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";
});