1. Description du problème:
Widow.location = function () est défini en js. Lorsque la page est fermée, la fonction Logout () n'est pas exécutée.
window.onunload = function () {logout (); } Fonction Logout (reqparam, callback) {var userManageServiceUrl = "http: //" + getserveraddr () + "/ axis2 / services / userManageService"; var ullist = []; var url = window.location.href; ullist = url.split ("?"); var sessionId = ULList [1]; reqparam.SessionId = sessionId; var pl = new soapClientParameters (); var reqparamstr = json.stringify (reqparam); pl.add ("reqparam", reqparamstr); SoapClient.invoke (UserManageServiceUrl, "déconnexion", pl, false, rappel); }2. Cause du problème:
La méthode SoapClient.invoke () est appelée dans Logout (), avec le paramètre True, ce qui signifie que le front-end et le serveur communiquent de manière asynchrone. Autrement dit, le frontal n'a pas reçu la réponse du côté serveur et l'instruction suivante a été exécutée. Dans ce problème, le frontal a fermé la page avant l'exécution de la réponse du serveur, il se manifeste donc car la déconnexion () n'a pas été exécutée.
3. Solution:
Modifiez la méthode de communication entre le front-end et le serveur pour être synchrone, c'est-à-dire changer vrai dans la méthode soapclient.invoke () en false, et le problème a été résolu.