Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

163
Visualizações
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 à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda