1。問題の説明:
widow.location = function()はjsで定義されています。ページが閉じている場合、logout()関数は実行されません。
window.onunload = function(){logout(); } function logout(reqparam、callback){var usermanageserviceurl = "http://" + getserveraddr() + "/axis2/services/usermanageservice"; var urllist = []; var url = window.location.href; urllist = url.split( "?"); var sessionid = urllist [1]; reqparam.sessionId = sessionId; var pl = new SoapClientParameters(); var reqparamstr = json.stringify(reqparam); pl.add( "reqparam"、reqparamstr); soapclient.invoke(usermanageserviceurl、 "logout"、pl、false、callback); }2。問題の原因:
soapclient.invoke()メソッドはlogout()で呼び出され、パラメーターが真であり、フロントエンドとサーバーが非同期に通信することを意味します。つまり、フロントエンドはサーバー側から応答を受信しておらず、次のステートメントが実行されました。この問題では、サーバーの応答が実行される前にフロントエンドがページを閉じているため、logout()が実行されていないために現れます。
3。解決策:
フロントエンドとサーバーの間の通信方法を同期して変更します。つまり、soapclient.invoke()メソッドでtrueをfalseに変更し、問題が解決されました。