Requisitos: Interceptar todas las solicitudes XMLHttpRequest y, cuando la interfaz de backend devuelve el código de estado inválido de inicio de sesión, saltar directamente a la interfaz de inicio de sesión y dejar de pasarlo. También puede utilizarse para solicitar la adición de firmas unificadas, resolución automática de protocolos, estadísticas de llamadas de interfaz, etc.
Revisión:
Aunque jQuery puede interceptar solicitudes Ajax, está limitado al llamador que utiliza métodos ajax en jQuery y no puede interceptar solicitudes usando XMLHttpRequest nativo.Dado que la solicitud ajax en jQuery también es una encapsulación de XMLHttpRequest, en realidad podemos interceptar XMLHttpRequest。
ajax-hook es una biblioteca ligera para interceptar objetos XMLHttpRequest del navegador, que puede usarse para preprocesar solicitudes, respuestas y errores antes de que el objeto XMLHttpRequest inicie una solicitud, tras recibir el contenido de la respuesta y cuando ocurre un error. Ajax-hook es altamente compatible y puede ejecutarse en cualquier navegador que soporte ES5, ya que no depende de las funciones de ES6.
Principio: ajax-hook personaliza los métodos y propiedades en XMLHttpRequest para anular el objeto global XMLHttpRequest. Se envuelve una capa de proxy para el objeto XMLHttpRequest.
Dirección de código abierto:El inicio de sesión del hipervínculo es visible.
Dirección CDN:El inicio de sesión del hipervínculo es visible.
Proxy vs. gancho
Tanto proxi() como hook() pueden usarse para interceptar solicitudes globales XMLHttp. Sus diferencias son:Hook() tiene una fina granularidad de intercepción, puede ser específico de un método, atributo o callback del objeto XMLHttpRequest, pero es más complicado de usar y, muchas veces, no solo la lógica de negocio debe dispersarse en varias callbacks, sino también propensa a errores. mientras queProxy () tiene un alto grado de abstracción, y se construye el contexto de la solicitud (la configuración de información de la solicitud puede obtenerse directamente en cada callback), lo cual es más sencillo y eficiente de usar.
La mayoría de las veces, nosotrosSe recomienda usar el método proxy() a menos que no se adapte a tus necesidades。
Intenta añadir jQuery interceptación de peticiones ajax e intercepción proxy en ajax-hook, el código es el siguiente:
Prueba a enviar una solicitud get usando jQuery y podrás verlaAmbos pueden ser interceptados, como se muestra en la figura siguiente:
Envía una solicitud usando XMLHttpRequest nativo, descubreSolo el gancho ajax puede interceptar, como se muestra en la figura siguiente:
Más usos del proxy ajax-hook:
Ejemplo:El inicio de sesión del hipervínculo es visible.
(Fin)
|