J'utilise ajax et jquery pour envoyer un * synchonou * s requête HTTP à un script php dans une application web pour se déconnecter de l'utilisateur si l'utilisateur décide de quitter la page plutôt que de se déconnecter .jquery ajax requête http synchrone
je suis en utilisant hte code suivant:
function close()
{
return "If you exit you will be logged out ...!";
}
window.onbeforeunload = close;
$(window).unload(function() {
$.ajax({
url: "logout.php",
async:false,
success: function(msg){
alert("You have been logged out ...!");}
});
});
le ajax travaille dans tous les cas à part quand je presse le bouton de retour. Quand j'appuie sur le bouton de retour, j'obtiens même la fonction de succès en cours d'exécution, mais quand je vérifie le script php n'a pas fonctionné car j'ai une fonction fwrite dedans pour me dire que cela a fonctionné. il fonctionne dans d'autres cas en dehors du bouton de retour.
J'ai juste essayé d'ajouter le cache: faux, cela n'a pas fonctionné. cela peut-il avoir quelque chose à voir avec le fait que lorsque je presse, il retourne à un autre script php? – user434885
@user: Si vous voyez vraiment la fonction 'success' appelée, mais que vous ne voyez vraiment pas la ligne connectée depuis votre PHP, je ne vois pas d'autre option que le navigateur qui utilise une réponse en cache ou (excuses) que vous êtes en train de mal observer. Quoi qu'il en soit, faire quoi que ce soit sur la page de déchargement est * extrêmement * peu fiable (ce code ne fera pas ce que vous voulez sur Safari, Opera, IE9, autres), donc je suppose que vous devez avoir un repli (time-out, etc .). Je recommanderais de ne pas avoir le 'alert' et de simplement prendre toute déconnexion proactive que vous obtenez du déchargement en tant que * bonus *, pas quelque chose que vous comptez réellement. –