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 = windoc.href; urllist [1]; reqparam.sessionId = sessionId; var pl = new soapclientParameters(); var reqparamstr = json.stringify(reqparam); pl.add( "reqparam"、reqparamstr); soapclient.invoke(usermanageserviceurl、 "logout" "2。問題の原因:
soapclient.invoke()メソッドはlogout()で呼び出され、パラメーターが真であり、フロントエンドとサーバーが非同期に通信することを意味します。つまり、フロントエンドはサーバー側から応答を受信しておらず、次のステートメントが実行されました。この問題では、サーバーの応答が実行される前にフロントエンドがページを閉じているため、logout()が実行されていないために現れます。
3。解決策:
フロントエンドとサーバーの間の通信方法を同期して変更します。つまり、soapclient.invoke()メソッドでtrueをfalseに変更し、問題が解決されました。