Afin de fermer une session, lors de changement de page, ou fermeture du navigateur je souhaite déclencher une requete AJAX:
j'ai écrit la procédure ainsi:
<script language="javascript">
function stop(){
if(window.XMLHttpRequest){requete= new XMLHttpRequest();}
else{if (window.ActiveXObject){requete= new ActiveXObject("Microsoft.XMLHTTP");}}
var appel="Sources/deconnect.php";
requete.open("GET",appel,true);//ouverture requête AJAX
requete.send(null);
requete.onreadystatechange=function(){}
}
</script>
Sous FF pas de problème cela fonctionne correctement par contre sous IE ça ne marche pas lors de la fermeture de IE, IE plante avec le message suivant: "IEXPLORE.EXE a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru."
A voir également:
Onunload: attendre la fin d'un echange ajax avnt de fermer la fenêtre?
donc déjà rectifiez cela : ok.
mais requete.open + requete.send + requete.onreadystatechange
ce n'est pas le bon ordre (!)
requete.onreadystatechange + requete.open + requete.send
ce sera plus sûr
et....
votre fonction stop() rend la main malgré tout !
sans rien attendre la fin de quoi que ce soit,
ça risque donc aussi de queuter dans certains cas.