모든 jQuery AJAX 요청에 사용자 지정 http 헤더 추가
명확한 점:jQuery ajax call에 custom 헤더를 추가하는 데 문제가 없습니다. 모든 ajax call에 custom 헤더를 자동으로 추가하고 싶습니다.
jquery $.ajax custom http headers 문제(내 질문이 아님)를 살펴보면 각 ajax 호출에 대해 수작업으로 구현할 경우 코드가 어떻게 작동하는지에 대한 꽤 좋은 예를 볼 수 있을 것입니다.
모든 jQuery ajax 호출에 대해 보내기 전에 재정의하고 싶습니다.jQuery 문서에 따르면 jQuery.jaxSetup()을 사용하여 이 작업을 수행할 수 있지만, 예상치 못한 동작을 일으킬 수도 있다는 경고 메시지가 표시됩니다.이런 종류의 글로벌 콜백의 경우 .ajaxStart()를 사용하는 것이 좋습니다. .ajaxStart()는 XHR을 노출하지 않으므로 헤더를 추가할 수 있습니다.
ajaxSetup을 사용하여 보내기 전에 추가하면 됩니까?ajaxStart에서 XHR에 접속할 수 있는 방법이 있습니까?다른 선택지는?
프리필터가 이를 수행하는 쉬운 방법이 될 것입니다.
$.ajaxPrefilter(function( options ) {
if ( !options.beforeSend) {
options.beforeSend = function (xhr) {
xhr.setRequestHeader('CUSTOM-HEADER-KEY', 'CUSTOM-HEADER-VALUE');
}
}
});
이렇게 하면 특정 요청이 beforeSend 옵션을 재정의하지 않는 한 모든 요청이 사용자 지정 헤더를 가져옵니다.
그러나 axSetup을 사용하여 동일한 목표를 달성할 수 있습니다. 경고가 있는 유일한 이유는 경고를 사용하면 모든 ax 요청에 영향을 미쳐 특정 요청에 해당 옵션 집합이 필요하지 않은 경우 원하지 않는 결과가 발생할 수 있기 때문입니다.아약스 셋업을 사용하는 것이 좋을 것 같습니다. 그것이 결국 거기에 있는 이유입니다.
ajax global event ajaxSend()를 사용할 수 있습니다.
$( document ).ajaxSend(function( event, jqxhr, settings ) {
jqxhr.setRequestHeader(name, value)
});
데모: Fiddle
언급URL : https://stackoverflow.com/questions/20356374/add-custom-http-header-to-all-jquery-ajax-requests
'programing' 카테고리의 다른 글
MySQL 데이터베이스에 파일을 삽입하는 방법? (0) | 2023.09.15 |
---|---|
XPath contains()를 여기서 사용하는 방법? (0) | 2023.09.15 |
get_env()가 내 부울 환경 변수를 문자열로 취급하는 이유는 무엇입니까? (0) | 2023.09.15 |
jQuery가 있는 HTML 게시물로 iframe 대상 지정 (0) | 2023.09.15 |
일반 날짜를 unix 타임스탬프로 변환 (0) | 2023.09.15 |