Ver Mensaje Individual
  #8 (permalink)  
Antiguo 22/05/2020, 00:03
prueba230683
 
Fecha de Ingreso: abril-2011
Mensajes: 170
Antigüedad: 13 años, 1 mes
Puntos: 68
Respuesta: Ejecutar funcion JS al cerrar ventana HTML

Resulta que esta función envía la información via POST en formato text/plain, y PHP no es capaz de procesar este formato directamente (no se puede acceder desde $_POST). Para que se envíe en formato application/x-www-form-urlencoded, que sí es parseado por PHP, se debe hacer un pequeño cambio:

Código Javascript:
Ver original
  1. window.onunload = function analytics(event) {
  2.   if (!navigator.sendBeacon) return;
  3.  
  4.   var url = "/analytics"; // la ruta de tu endpoint
  5.  
  6.   var data = "location=" + encodeURIComponent(location.href) + "&ts=" + Date.now();
  7.  
  8.   navigator.sendBeacon(url, new URLSearchParams(data));
  9. };

y en tu caso

Código Javascript:
Ver original
  1. window.onunload = function analytics(event) {
  2.     if (!navigator.sendBeacon)
  3.         return;
  4.  
  5.     var cadena = document.getElementById("codUsuario").value; //Capturo el codUsuario para buscarlo luego en la BD y hacer el UPDATE
  6.     //alert(cadena);
  7.     var url = ".lib/link/linkIndex.php"; //Ruta del PHP para que haga el UPDATE
  8.     var data = "cerrarSesion=" + cadena; // $_POST['cerrarSesion'] = 'codUsuario'
  9.     //alert(url + "|" + data);
  10.     navigator.sendBeacon(url, new URLSearchParams(data));
  11. };


Última edición por prueba230683; 22/05/2020 a las 00:08