2012-11-28 3 views
5

breeze가 요청하기 전에 헤더를 설정하는 방법은 무엇입니까?Breeze에서 AJAX 헤더 설정

예 : 내 서비스에서는 특정 키가 의 요청 이름에 'x-service-key'라는 헤더 이름이 포함될 것으로 기대합니다. 지금까지 jquery ajax와 을 사용하고 있었기 때문에 헤더를 쉽게 설정할 수있었습니다. breeze가 만드는 요청에 대해 요청을 제어 할 수 없으므로 머리말처럼 여분의 메시지를 전달하는 방법은 무엇입니까?

이 질문은 sujesharukil의 IdeaBlade 포럼에 게시되었습니다. Breeze Stack Overflow 커뮤니티에 유용하다고 생각하기 때문에 질문과 답변을 다시 게시합니다.

답변

7

Breeze 0.70.1부터는 서버의 breeze 클라이언트와 웹 서비스 간의 Ajax 통신을 완전히 사용자 정의하거나 바꿀 수있는 기능을 지원합니다.

Ajax 지원에 대한 Breeze 설명서는 아직 진행 중이지만 잘하면 다음과 같이 시작할 수 있습니다.

Breeze가 만드는 모든 Ajax 요청에서 헤더를 제어하려면 앱을 처음 시작할 때 다음 코드를 실행할 수 있습니다.

var ajaxImpl = breeze.config.getAdapterInstance("ajax"); 
ajaxImpl.defaultSettings = { 
     headers: { 
      // any CORS or other headers that you want to specify. 
      "X-Test-Header": "foo2" 
     }, 
}; 

또는 개별 Ajax 호출을 가로 채고 요청에 따라 선택적으로 헤더를 추가 할 수 있습니다.

var ajaxImpl = breeze.config.getAdapterInstance("ajax"); 
ajaxImpl.defaultSettings = { 
     beforeSend: function(jqXHR, settings) { 
       // examine the jqXHR or settings and customize the headers accordingly. 
       jqXHR.setRequestHeader("X-Test-Before-Send-Header", "foo2"); 
     } 
};