EmberJS / Ember Data自定义http标头

时间:2015-07-01 20:41:49

标签: ruby-on-rails ember.js ember-data

使用ember 1.13.2和ember数据1.13.4以及rails后端。

根据ember指南,以下语句应修改每个XHR请求的http标头:

App.ApplicationAdapter = DS.RESTAdapter.extend({
  headers: {
    "Authorization": "secret key"
  }
});

所以我将此作为咖啡脚本添加到我的应用程序

App.ApplicationAdapter = DS.RESTAdapter.extend
  headers: {
        "Authorization": "foofoo"
      }

并将其包含并正确编译为javascript。

但http标头根本没有用新标头扩展。

http://discuss.emberjs.com/t/passing-header-information-to-rest-get-request-using-restadapter/4220/8

唯一有效的解决方案是配置jquery ajax:

Ember.$.ajaxPrefilter(function(options, oriOpt, jqXHR) {
    jqXHR.setRequestHeader("someHeader", "someValue");
});

但我更喜欢贪婪的方式

更新

奇怪,它现在只适用于ember方式。刚重新启动我的电脑。也许这是一个浏览器缓存问题。

1 个答案:

答案 0 :(得分:1)

根据Ember文档,您似乎大多是正确的。这是Ember documentation

提供的解决方案
  

某些API需要HTTP标头,例如提供API密钥。任意标题可以设置为RESTAdapter标头属性上的键/值对,Ember Data会将它们与每个ajax请求一起发送。

App.ApplicationAdapter = DS.RESTAdapter.extend({
  headers: {
    'API_KEY': 'secret key',
    'ANOTHER_HEADER': 'Some header value',
    'AUTHORIZATION': 'secret key'
  }
});