2013-06-03 6 views
12

API को एपीआई संस्करण application/vnd.api+json;version=1 निर्दिष्ट करने की आवश्यकता है, इसके लिए इसे सुरक्षित x-app-id और x-app-secret की आवश्यकता है। क्या एम्बर में RESTAdapter में निर्दिष्ट करने का कोई तरीका है?सभी RESTAdapter एम्बर अनुरोधों के लिए शीर्षलेख जोड़ने के लिए

अनुरोध हेडर कोशिश कर रहा

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

समाधान जैसा कि ऊपर उल्लेख नहीं रह गया है की जरूरत है, एंबर अब डिफ़ॉल्ट रूप से इस व्यवहार का समर्थन करता है के रूप में करने के बाद। आपको केवल headers आपूर्ति करने की आवश्यकता है और यह स्वचालित रूप से जोड़ा जाएगा।

बाहर की जाँच करें यहाँ http://emberjs.com/guides/models/connecting-to-an-http-server/#toc_custom-http-headers

+0

मेरे लिए काम नहीं है; जब मैं अनुरोध को देखता हूं, इसमें कोई शीर्षलेख नहीं होता है। कोई उपाय ? एक संस्करण समस्या मैबी? – fabien

+0

क्या आप '' 'App.Store = DS.Store.extend ({ एडाप्टर: App.Adapter.create() }) पर कॉल करें;' '' '' '' _ 'App.store = App.Store.create (); '' 'उपर्युक्त कोड जोड़ने के बाद? –

+0

और यह काम किया :) धन्यवाद – fabien

उत्तर

5

डॉक्स कोर RESTAdapter अजाक्स के लिए jQuery का उपयोग करती पर, आप $ .ajaxSetup या एंबर। $ के साथ एक अधिक एंबर तरीके के साथ हेडर सेट कर सकते हैं। AjaxSetup जो आदर्श कम के खिलाफ आप की रक्षा करेगी एपीआई में स्तर परिवर्तन।

jQuery डॉक्टर: http://api.jquery.com/jQuery.ajaxSetup/

अतः उदाहरण के साथ

:

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

+0

ठीक है, मैं कैसे एक्स-ऐप-गुप्त सुरक्षित रूप से रख सकता हूं? –

+0

यह भी देखें https://github.com/emberjs/data/issues/722 –

+0

कुछ भी जो मैं कॉपी-अतीत कर सकता हूं। मैं उन लोगों में से किसी को भी अपने प्रोजेक्ट में काम नहीं कर सकता। या मुझे नहीं पता कि उन्हें कैसे एकीकृत किया जाए। –

संबंधित मुद्दे