2013-06-03 26 views
12

API, application/vnd.api+json;version=1 numaralı api sürümünü belirtmelidir, ayrıca güvenli x-app-kimliği ve x-app-secret gerektirir. Ember'deki RESTAdapter'de belirtmenin bir yolu var mı?Tüm RESTAdapter istekleri için üstbilgi nasıl eklenir

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(); 

GÜNCELLEME 2.

Kor artık varsayılan olarak bu davranışı destekler olarak artık ihtiyaç vardır yukarıda belirtilen çözüm

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

ÇÖZÜM istek başlığı çalışılıyor sonra. Sadece headers tedarik etmeniz yeterlidir ve otomatik olarak eklenecektir.

Kontrol dışarı RESTAdapter Ajax için jQuery kullanan özünde burada http://emberjs.com/guides/models/connecting-to-an-http-server/#toc_custom-http-headers

+0

benim için Çalışmıyor; İsteğime baktığımda, içinde başlık yok. Herhangi bir fikir ? Bir sürüm problemi mabye? – fabien

+0

'' 'App.Store = DS.Store.extend ({ bağdaştırıcısı: App.Adapter.create() });' '' Daha sonra '' 'App.store = App.Store.create (); '' Yukarıdaki kodu ekledikten sonra? –

+0

Ve bu çalıştı :) Teşekkürler – fabien

cevap

5

dokümanlar, size $ .ajaxSetup veya Kor. $ Ile daha Kor yolu ile başlıklarını ayarlayabilirsiniz. AjaxSetup ideal olarak alt karşı korumak hangi API seviyesinde değişiklikler.

jQuery Doc: örneklerle SO http://api.jquery.com/jQuery.ajaxSetup/

:

How can I add a custom HTTP header to ajax request with js or jQuery?

+0

Tamam, nasıl x-app-secret güvenli bir şekilde nasıl koyabilirim hakkında herhangi bir fikir? –

+0

Ayrıca bkz. Https://github.com/emberjs/data/issues/722 –

+0

Kopyalayabildiğim her şey. Projemde çalışmak için bunlardan hiçbirini alamıyorum. ya da onları nasıl bütünleştireceğimi bilmiyorum. –

İlgili konular