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 originalwindow.onunload = function analytics(event) {
if (!navigator.sendBeacon) return;
var url = "/analytics"; // la ruta de tu endpoint
var data = "location=" + encodeURIComponent(location.href) + "&ts=" + Date.now();
navigator.sendBeacon(url, new URLSearchParams(data));
};
y en tu caso
Código Javascript
:
Ver originalwindow.onunload = function analytics(event) {
if (!navigator.sendBeacon)
return;
var cadena = document.getElementById("codUsuario").value; //Capturo el codUsuario para buscarlo luego en la BD y hacer el UPDATE
//alert(cadena);
var url = ".lib/link/linkIndex.php"; //Ruta del PHP para que haga el UPDATE
var data = "cerrarSesion=" + cadena; // $_POST['cerrarSesion'] = 'codUsuario'
//alert(url + "|" + data);
navigator.sendBeacon(url, new URLSearchParams(data));
};