我需要通过标头传递授权令牌,这适用于find
和findQuery
,但save
似乎没有调用标头功能?!
createRecord: function(store, type, record) {
var data = {};
var serializer = store.serializerFor(type.typeKey);
var snapshot = record._createSnapshot();
serializer.serializeIntoHash(data, type, snapshot, { includeId: true });
return this.ajax(this.buildURL(type.typeKey, null, record), "POST", { data: data });
},
上述RESTAdapter中没有对标题的调用
我可以很容易地添加一个标题调用,但是...确实看起来奇怪了它的缺失。
答案 0 :(得分:0)
而不是覆盖存储方法扩展RESTAdapter
App.ApplicationAdapter = DS.RESTAdapter.extend({
headers: {
'API_KEY': 'secret key',
'ANOTHER_HEADER': 'Some header value'
}
});
可以在RESTAdapter的headers属性上将任意标头设置为键/值对,Ember Data会将它们与每个ajax请求一起发送。
请参阅http://emberjs.com/guides/models/connecting-to-an-http-server/#toc_custom-http-headers
答案 1 :(得分:0)
是的,它简单地覆盖了createRecord ..似乎有点奇怪,它在RESTAdapter中丢失了。
createRecord: function(store, type, record) {
var data = {};
var serializer = store.serializerFor(type.typeKey);
var snapshot = record._createSnapshot();
serializer.serializeIntoHash(data, type, snapshot, { includeId: true });
var headers = this.headers(); // Add this
return this.ajax(this.buildURL(type.typeKey, null, record), "POST", { headers: headers, data: data });
// And note the headers: data versus data only
},