使用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方式。刚重新启动我的电脑。也许这是一个浏览器缓存问题。
答案 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'
}
});