【问题标题】:How can I get my ngResource to accept custom headers?如何让我的 ngResource 接受自定义标头?
【发布时间】:2013-02-12 06:04:13
【问题描述】:

我在咖啡脚本中的代码:

  resource = $resource GlobalService.apiRoot + "stuffs", {},
    get:
      method: "GET"
      headers:
        "Accept": "application/stuffs;version=3"
        "Authorization": 'Token token="' + $.cookie('token') + '"'

我的 javascript 代码:

var resource;

resource = $resource(GlobalService.apiRoot + "stuffs", {}, {
  get: {
    method: "GET",
    headers: {
      "Accept": "application/stuffs;version=3",
      "Authorization": 'Token token="' + $.cookie('token') + '"'
    }
  }
});

然后当我这样做时..

resource.get ->

它不会发送那些指定的标头,并且实际上无法通过 CORS 授权。

有什么建议吗?

【问题讨论】:

  • IIRC,几个月前已对此进行了修复。看看这里:github.com/angular/angular.js/pull/965
  • 您使用的是哪个版本的 Angular?
  • 1.0.3 ...我试图弄清楚该提交甚至被推送到哪里;)
  • 试试 1.0.4 ...它是目前最新的稳定版本。
  • 实际上,查看当前 Angular 版本(1.0.4 和 1.1.2)的实际来源,您似乎需要使用不稳定的 1.1.* 版本来获取该标头设置:@ 987654322@

标签: angularjs


【解决方案1】:

看起来该标头设置仅在 Angular 的最新“不稳定”版本中可用。如果您使用它,请务必将 angular.js 和 angular.resource.js 都升级到 1.1.2(当前不稳定版本)。

【讨论】:

  • 哈,我接受的太早了。这实际上不起作用..标题未设置。
  • 我自己刚试了一下,肯定是设置了headers。在 $httpBackend 中设置一个断点并检查传递给该方法的标头。你应该在那里看到你的标题。如果您没有看到标头,则可能是服务器端的问题。
  • 另外,设置 Fiddler 并观察发送的内容。
  • 仅供参考:httpBackend 在 1.1.2/angular.js 中的第 9230 行附近
猜你喜欢
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-03
  • 2013-07-02
  • 2013-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多