이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 4352|회답: 2

[JavaScript] 웹 개발용 ajax-hook은 모든 XMLHttpRequest 요청을 가로챕니다

[링크 복사]
게시됨 2023. 6. 22. 오전 10:29:45 | | | |
요구사항: 모든 XMLHttpRequest 요청을 가로채고, 백엔드 인터페이스가 로그인 무효 상태를 반환하면 바로 로그인 인터페이스로 점프하여 더 이상 전송하지 않습니다. 또한 통합 서명, 자동 프로토콜 해석, 인터페이스 호출 통계 등 추가 요청에도 사용할 수 있습니다.

복습:

jQuery는 Ajax가 반환한 결과를 가로채습니다
https://www.itsvse.com/thread-9570-1-1.html
jQuery는 Ajax 요청을 가로챌 수 있지만, jQuery 내 ajax 메서드를 사용하는 호출자로만 제한되며 네이티브 XMLHttpRequest를 사용하는 요청을 가로챌 수 없습니다.jQuery의 ajax 요청도 XMLHttpRequest의 캡슐화이기 때문에, 실제로 XMLHttpRequest를 가로챌 수 있습니다

ajax-hook은 브라우저의 XMLHttpRequest 객체를 가로채기 위한 경량 라이브러리로, XMLHttpRequest 객체가 요청을 시작하기 전, 응답 내용을 받은 후, 오류가 발생할 때 요청, 응답, 오류를 사전 처리하는 데 사용됩니다. Ajax-hook은 ES6 기능에 의존하지 않아 ES5를 지원하는 모든 브라우저에서 매우 호환성이 높고 실행할 수 있습니다.

원칙: ajax-hook은 XMLHttpRequest 내 메서드와 속성을 맞춤화하여 전역 XMLHttpRequest 객체를 덮어씁니다. XMLHttpRequest 객체를 위해 프록시 계층이 랩핑됩니다.

오픈 소스 주소:하이퍼링크 로그인이 보입니다.

CDN 주소:하이퍼링크 로그인이 보입니다.

프록시 vs. 훅

proxy()와 hook() 모두 글로벌 XMLHttpRequests를 가로채는 데 사용할 수 있습니다. 이들의 차이점은 다음과 같습니다:hook()는 미세한 인터셉트 세분성을 가집니다, 는 XMLHttpRequest 객체의 특정 메서드, 속성 또는 콜백에 특정할 수 있지만, 사용이 더 번거롭고, 비즈니스 로직이 여러 콜백에 분산되어야 할 뿐만 아니라 오류가 발생할 위험도 많습니다. 반면proxy()는 높은 추상화를 가집니다, 그리고 요청 컨텍스트가 구축되며(각 콜백에서 요청 정보 구성이 직접 얻을 수 있음), 이는 더 간단하고 효율적으로 사용할 수 있습니다.

대부분의 경우, 우리는필요에 맞지 않는 한 proxy() 방식을 사용하는 것이 권장됩니다

ajax-hook에서 jQuery ajax 요청 인터셉션과 프록시 인터셉션을 추가해 보세요. 코드는 다음과 같습니다:

jQuery로 get 요청을 보내보면 확인할 수 있습니다둘 다 요격할 수 있습니다, 아래 그림에서 볼 수 있습니다:



네이티브 XMLHttpRequest를 사용해 요청을 보내기, discover오직 아약스-훅만이 가로챌 수 있습니다, 아래 그림에서 볼 수 있습니다:



ajax-hook 프록시의 더 많은 활용 사례:

본보기:하이퍼링크 로그인이 보입니다.

(끝)





이전의:EF SQL 문은 자동으로 IS NULL 또는 IS NOT NULL을 생성합니다
다음:.NET/C# Http클라이언트 소스 코드 간단한 분석
 집주인| 게시됨 2023. 6. 22. 오전 10:32:52 |
인터셉트 fetch() API 요청 및 응답:https://stackoverflow.com/questi ... onses-in-javascript
 집주인| 게시됨 2024. 4. 18. 오전 8:39:18 |
HTTP 응답 401 무단 점프 로그인 코드 가로채기:

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com