1. 문제 설명 :
widow.location = function ()은 js에 정의되어 있습니다. 페이지가 닫히면 로그 아웃 () 함수가 실행되지 않습니다.
window.onload = 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 = 새로운 soapclientParameters (); var reqparamstr = json.stringify (reqparam); pl.add ( "reqparam", reqparamstr); soapclient.invoke (usermanageserviceurl, "logout", pl, false, 콜백); }2. 문제의 원인 :
soapclient.invoke () 메소드는 로그 아웃 ()에서 호출되며 매개 변수가 true로 호출되므로 프론트 엔드와 서버가 비동기 방식으로 통신 함을 의미합니다. 즉, 프론트 엔드는 서버 측에서 응답을받지 못했고 다음 명령문이 실행되었습니다. 이 문제에서 프론트 엔드는 서버의 응답이 실행되기 전에 페이지를 닫았으므로 로그 아웃 ()이 실행되지 않으므로 나타납니다.
3. 해결책 :
프론트 엔드와 서버 간의 통신 메소드를 동기식으로 변경하십시오.