전역적으로 AJAX 요청 가로채기
질문: 모든 AJAX 요청을 가로채는 "후크"를 설정하는 것이 가능합니까? 전송 전이나 수명 주기 중에 웹페이지에 작성되었습니까? jQuery 또는 기타 프레임워크를 사용하는 타사 스크립트가 페이지에 존재할 수 있다고 가정합니다.
답변: 물론 콜백을 중단하지 않고 모든 AJAX 요청을 전역적으로 가로채는 일반 후크를 구현할 수 있습니다. 타사 AJAX 라이브러리에 의해 정의됩니다. 다음은 시연할 코드 조각입니다.
<code class="javascript">(function() { var origOpen = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function() { console.log('request started!'); this.addEventListener('load', function() { console.log('request completed!'); console.log(this.readyState); //will always be 4 (ajax is completed successfully) console.log(this.responseText); //whatever the response was }); origOpen.apply(this, arguments); }; })();</code>
이 코드는 AJAX 요청이 성공적으로 완료될 때 트리거되는 로드 이벤트를 수신하도록 XMLHttpRequest 프로토타입의 open 메서드를 수정합니다. 이 이벤트 리스너 내에서 요청 및 응답 정보 로깅, 응답 데이터 조작, 심지어 요청 중단과 같은 사용자 정의 작업을 수행할 수 있습니다.
이 접근 방식을 사용하면 다음에서 이루어진 모든 AJAX 요청에 연결할 수 있습니다. 사용된 기본 프레임워크나 라이브러리에 관계없이 페이지는 AJAX 통신 모니터링, 디버깅 또는 상호 작용을 위한 중앙 지점을 제공합니다.
위 내용은 웹페이지의 모든 AJAX 요청을 전역적으로 가로챌 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!