Requisitos: Intercepte todas as solicitações XMLHttpRequest e, quando a interface backend retorne o código de status inválido do login, pule diretamente para a interface de login e não o passe mais. Também pode ser usado para solicitar a adição de assinaturas unificadas, resolução automática de protocolos, estatísticas de chamadas de interface, etc.
Revisar:
Embora o jQuery possa interceptar requisições Ajax, ele é limitado ao chamador usando métodos ajax no jQuery e não pode interceptar requisições usando XMLHttpRequest nativo.Como a solicitação ajax no jQuery também é um encapsulamento do XMLHttpRequest, podemos realmente interceptar o XMLHttpRequest。
ajax-hook é uma biblioteca leve para interceptar objetos XMLHttpRequest do navegador, que pode ser usada para pré-processar solicitações, respostas e erros antes que o objeto XMLHttpRequest inicie uma solicitação, após receber o conteúdo da resposta e quando ocorre um erro. O Ajax-hook é altamente compatível e pode rodar em qualquer navegador que suporte ES5, pois não depende dos recursos do ES6.
Princípio: ajax-hook personaliza os métodos e propriedades no XMLHttpRequest para sobrescrever o objeto global XMLHttpRequest. Uma camada de proxy é enrolada para o objeto XMLHttpRequest.
Endereço de Código Aberto:O login do hiperlink está visível.
Endereço da CDN:O login do hiperlink está visível.
Proxy vs. Gancho
Tanto proxy() quanto hook() podem ser usados para interceptar XMLHttpRequests globais. As diferenças entre eles são:O gancho() possui uma granularidade fina de interceptação, pode ser específico para um determinado método, atributo ou callback do objeto XMLHttpRequest, mas é mais difícil de usar e, muitas vezes, não só a lógica de negócio precisa estar dispersa em vários callbacks, como também propensa a erros. considerando queProxy () possui um alto grau de abstração, e o contexto de requisição é construído (a configuração de informações de requisição pode ser obtida diretamente em cada callback), o que é mais simples e eficiente de usar.
Na maioria das vezes, nósRecomenda-se usar o método proxy(), a menos que ele não atenda às suas necessidades。
Tente adicionar interceptação de solicitação ajax jQuery e interceptação proxy no ajax-hook, o código é o seguinte:
Tente enviar uma solicitação get usando jQuery e você pode verAmbos podem ser interceptados, como mostrado na figura abaixo:
Envie uma solicitação usando XMLHttpRequest nativo, discoverApenas o ajax-hook pode interceptar, como mostrado na figura abaixo:
Mais usos do proxy ajax-hook:
Exemplo:O login do hiperlink está visível.
(Fim)
|