灰烬保存需要标题。似乎没有通过RESTAdapter头功能

时间:2015-03-20 23:25:45

标签: ember.js ember-data

我需要通过标头传递授权令牌,这适用于findfindQuery,但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中没有对标题的调用

我可以很容易地添加一个标题调用,但是...确实看起来奇怪了它的缺失。

2 个答案:

答案 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
},