1. 문제 설명 :
widow.location = function ()은 js에 정의되어 있습니다. 페이지가 닫히면 로그 아웃 () 함수가 실행되지 않습니다.
Window.Onload = function () {logout ();} 함수 로우 아웃 (reqparam, 콜백) {var userManagesErviceUrl = "http : //" + getserveraddr ()/axis2/services/services/usermanageservice "; var urllist = []; var url = window.location.href; urllit (urllit);" ";"); urllist [1]; reqparam.sessionid = sessionid; var pl = new soapclientparameters (); var reqparamstr = json.stringify (reqparam); pl.add ( "reqparam", reqparamstr); soapclient.invoke (usermanageserviceurl, "logout", false, callback);2. 문제의 원인 :
soapclient.invoke () 메소드는 로그 아웃 ()에서 호출되며 매개 변수가 true로 호출되므로 프론트 엔드와 서버가 비동기 방식으로 통신 함을 의미합니다. 즉, 프론트 엔드는 서버 측에서 응답을받지 못했고 다음 명령문이 실행되었습니다. 이 문제에서 프론트 엔드는 서버의 응답이 실행되기 전에 페이지를 닫았으므로 로그 아웃 ()이 실행되지 않으므로 나타납니다.
3. 해결책 :
프론트 엔드와 서버 간의 통신 메소드를 동기식으로 변경하십시오.