Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

161
Vistas
Anulando XMLHttpRequest.prototype.send

Estoy trabajando en esta aplicación que es una especie de complemento que está incrustado en un sitio web para rastrear los cambios del sitio web. Lo usamos para anular la implementación del prototipo de enviar y buscar de la siguiente manera. Luego, un fragmento de código que se parece a esto.

 var v = window.XMLHttpRequest.prototype.send; window.XMLHttpRequest.prototype.send = function (w) { this.addEventListener("load", function (T) { // custom logic }); return v.apply(this, arguments) }

Esto funciona como pan comido para muchos clientes, pero para uno nos enfrentamos a un problema en el que el depurador no alcanza el fragmento de código anterior, lo que resulta en una falla al establecer la lógica personalizada.
En una depuración adicional, notamos que el cliente también anula el método XMLHttpRequest.prototype.open y tiene una lógica personalizada para enviar estos datos a su CRM/webhook interno.

Esta es su implementación.

 const open = window.XMLHttpRequest.prototype.open; function customActivityHandler() { this.addEventListener("load", function () { // custom logic log_custom_activity_event({}) return open.apply(this, arguments); } window.XMLHttpRequest.prototype.open = customActivityHandler; function log_custom_activity_event(requestBody) { let url = "https://aws.lambda.com/webhook"; let dataBody = { method: "POST", body: JSON.stringify(requestBody) } fetch(url,dataBody); }

Este paso es muy crucial para mí.

Por casualidad, cuando el cliente implementa su customHandler para abrir, ¿elimina la referencia a otra implementación? Si ese es el caso, ¿cómo puedo solucionar esto para que incluso se aplique mi lógica personalizada? Cualquier cosa sobre esto será útil.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda