>웹 프론트엔드 >JS 튜토리얼 >웹 페이지의 모든 AJAX 요청을 어떻게 가로챌 수 있나요?

웹 페이지의 모든 AJAX 요청을 어떻게 가로챌 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-10-26 14:21:02785검색

How Can You Intercept All AJAX Requests on a Web Page?

페이지의 모든 AJAX 요청 연결

추가 작업을 수행하도록 AJAX 요청을 수정하는 것은 디버깅, 분석 또는 기타 목적에 매우 중요할 수 있습니다. . 그러나 한 페이지에서 서로 다른 AJAX 라이브러리를 사용하는 여러 타사 스크립트가 있으면 이를 모두 가로채는 것이 어려워 보일 수 있습니다.

AJAX 요청 가로채기

모든 AJAX를 모니터링하려면 요청을 하면 XMLHttpRequest 객체를 활용할 수 있습니다. 다음은 여러 라이브러리에서도 작동하는 강력한 솔루션입니다.

(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);
    };
})();

이 코드는 XMLHttpRequest의 open 메서드를 재정의하여 로드 이벤트에 대한 이벤트 리스너를 등록합니다. 요청이 시작되면 시작 시간이 기록됩니다. 요청이 완료되면 종료 시간, 준비 상태 및 응답 텍스트가 기록됩니다.

참고: 이 방법은 기본 가져오기 요청에는 작동하지 않습니다. 그러나 필요한 경우 가져오기에 대해 유사한 프록시 접근 방식을 채택할 수 있습니다.

위 내용은 웹 페이지의 모든 AJAX 요청을 어떻게 가로챌 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.