2013-06-03 4 views
12

API는 api 버전 application/vnd.api+json;version=1을 지정해야하며 보안 x-app-id 및 x-app-secret도 필요합니다. Ember의 RESTAdapter에서이를 지정하는 방법이 있습니까?모든 RESTAdapter 요청에 대한 헤더를 추가하는 방법

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

엠버 지금 기본적으로이 동작을 지원하는 더 이상 필요 이상 언급되지 솔루션

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

해결 요청 헤더를 시도 후. headers 만 제공하면 자동으로 추가됩니다.

체크 아웃 RESTAdapter가 아약스에 대한 jQuery를 사용하는 핵심은 여기 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

워드 프로세서, 당신은 $ .ajaxSetup 또는 엠버. $와 더 엠버 방법으로 헤더를 설정할 수 있습니다. ajaxSetup 이상적으로 낮은으로부터 보호 것이다 API에 대한 레벨 변경.

의 jQuery 문서 : 예제와 함께 SO http://api.jquery.com/jQuery.ajaxSetup/

:

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

+0

좋아요, 어떻게 x-app-secret을 안전하게 넣을 수 있을지에 대한 아이디어가 있습니까? –

+0

https://github.com/emberjs/data/issues/722 –

+0

을 참조하십시오. 내가 복사 할 수있는 모든 것. 내 프로젝트에서 그 중 일부를 사용할 수 없습니다. 또는 나는 그것들을 통합하는 방법을 모른다. –

관련 문제