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

483
Visualizações
¿Cómo enviar una solicitud AJAX PUT en la descarga de la página sin que se cancele?

Estoy tratando de enviar una solicitud PUT en el evento de unload , sin embargo, la solicitud siempre se cancela.

Las respuestas aquí sugieren que es

  1. no es posible: ¿Cómo realizar una llamada ajax en la descarga de la página?

  2. posible: ¿Cómo envío una solicitud AJAX al descargar/salir de la página?

¿Puedo enviar una solicitud de AJAX al descargar? Si es así, ¿cómo puedo hacerlo sin que me cancele?

Nota: No me importa la respuesta, no necesito una respuesta. Solo necesito enviar información al servidor diciendo que la página se cerró sin controles de mantenimiento.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Todo lo que necesita hacer es hacer que la llamada ajax sea síncrona. De esa forma, el navegador esperará la respuesta antes de cerrar la ventana/pestaña y no se cancelará.

 $(window).unload(function(){ $.ajax({ type: 'PUT', url: '/your_url.php', async:false, //IMPORTANT, the call will be synchronous data: {} }).done(function(data) { console.log('complete'); }); });
over 4 years ago · Santiago Trujillo Relatório

0

Los navegadores están deshabilitando activamente la realización de llamadas ajax estándar en un controlador de descarga de página, porque esperar a que se complete retrasa lo siguiente que sucede en la ventana (por ejemplo, cargar una nueva página). Aunque no puede hacer PUT con él, el reemplazo de ajax síncrono en los controladores de descarga es sendBeacon . sendBeacon le permite enviar datos a su servidor sin detener la página en la que lo está haciendo:

 window.addEventListener("unload", function() { navigator.sendBeacon("/log", yourDataHere); });

El navegador enviará los datos sin impedir/retrasar lo que esté pasando en la ventana (cerrarla, pasar a una nueva página, etc.).

Las balizas son POST, no PUT, pero aparte de eso, es exactamente lo que está buscando.

Tenga en cuenta que el evento de unload puede no ser confiable, particularmente en dispositivos móviles. También puede combinar lo anterior con el envío de una baliza sobre el cambio de visibilitychange .

over 4 years ago · Santiago Trujillo Relatório
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