Как добавить заголовок для всех запросов в ember-запрос RESTAdapter

API должен указать api version application/vnd.api+json;version=1, также нужен безопасный x-app-id и x-app-secret. Есть ли способ указать, что в RESTAdapter в Ember?

После запроса заголовка запроса

App.Adapter = DS.RESTAdapter.extend({
  namespace: 'api',
  beforeSend: function(xhr) {
    xhr.setRequestHeader('x-my-custom-header', 'some value');
  }
})

РЕШЕНИЕ

App.Adapter = DS.RESTAdapter.extend({
  bulkCommit: true,
  namespace: 'api',
  headers: { 
   'Accept': 'application/vnd.app+json;version=1',
   'x-appid': '2375498237',
   'x-secret': '238945298235236236236236375923'
  },
  ajax: function(url, type, hash) {
    if (this.headers !== undefined) {
      var headers = this.headers;
      hash.beforeSend = function (xhr) {
        Ember.keys(headers).forEach(function(key) {
          xhr.setRequestHeader(key, headers[key]);
        });
      };
    }
    return this._super(url, type, hash);
  }
});

App.Store = DS.Store.extend({ adapter: App.Adapter.create() }); 
App.Store = App.Store.create();

ОБНОВЛЕНИЕ # 2

Решение, упомянутое выше, больше не требуется, поскольку Ember теперь поддерживает это поведение по умолчанию. Вам нужно только поставить headers, и он будет автоматически добавлен.

Ознакомьтесь с документами здесь http://emberjs.com/guides/models/connecting-to-an-http-server/#toc_custom-http-headers

Ответ 1

В основе RESTAdapter используется jQuery для Ajax, вы можете установить заголовки с $.ajaxSetup или более Ember способом с Ember. $. ajaxSetup, который идеально защитит вас от изменений нижнего уровня в API.

jQuery Doc: http://api.jquery.com/jQuery.ajaxSetup/

SO с примерами:

Как добавить пользовательский заголовок HTTP в ajax-запрос с помощью js или jQuery?