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

480
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
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