Angular js- 在ngResource中设置标头

Angular js- Setting headers in a ngResource

本文关键字:设置 ngResource js- Angular      更新时间:2023-09-26

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

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

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

不要使用 run(),将 config()$httpProvider 一起使用:

app.config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.headers.common = {
        'RemoteUser': 'billybob'
    };
}])
clinicalApp.run(function($http) {
    $http.defaults.headers.common["Content-Type"] = "application/json, charset=UTF-8";
});