2013-03-27 2 views
1

내 사이트에는 jquery와 일부 dojo를 사용하는 페이지가 있습니다 (실제로 jquery로 이동 중입니다). jquery 나 dojo를 사용하는지 여부에 관계없이 모든 Ajax 요청에 공통 사용자 정의 헤더를 설정해야한다. 다음과 같이 할 수 있습니까?모든 ajax 호출에서 xhr.setrequestheader?

$.ajaxSetup({ 
    headers: { 
     'X-app':'ios' 
    } 
}); 
dojo._xhr_orig = dojo.xhr; 
    dojo.xhr = function(/*String*/ method, /*dojo.__XhrArgs*/ args, /*Boolean?*/ hasBody){ 
     args = args || {}; 
     args.headers = args.headers || {}; 

     args.headers['X-app'] = 'ios'; 

     return dojo._xhr_orig.apply(this, arguments); 
    } 

하지만 사이트 전체에서이 작업을 수행해야합니다. 뭔가 XMLHTTPrequest 프로토 타입이 뭔가를 변경할 수 있습니까?

+0

XMLHttpRequest를 사용하는 대신 사용자 지정 xhr/request 함수를 작성하는 것이 더 쉬울 것이라고 생각합니다. 그런 다음 JS 프레임 워크를 사용하여 실제로 특수 헤더 나 기타 항목으로 요청을 구성 할 수 있습니다. – laupow

답변

0

당신은이 같은 시도 할 수 있습니다 : 요청 헤더를 설정하기 위해 대문자를 사용하여주의 하시고

$("body").bind("ajaxSend", function(elm, xhr, s){ 
      if (s.type == "POST") { 
       xhr.setRequestHeader('X-app', 'ios'); 
      } 
}); 

그런데를, 내가 제대로 설정하지 않는 IE6, IE7과 IE8로 약간의 문제가 있었다.

편집 :이 도움말을

$.ajaxSetup({ 
      beforeSend: function (jqXHR, settings) { 
      jqXHR.setRequestHeader('X-app', 'ios'); 
      } 
}); 

희망을이 훨씬 더

(AN은 대소 문자 구분에 대해 걱정할 필요하지 않음). 감사합니다.

관련 문제