1. Описание проблемы:
Widow.location = function () определяется в JS. Когда страница закрыта, функция logout () не выполняется.
window.onunload = function () {logout (); } function logout (reqparam, callback) {var user manageServiceurl = "http: //" + getserveraddr () + "/axis2/services/user manageservice"; 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, «ряд», PL, false, обратный вызов); }2. Причина проблемы:
Метод soapclient.invoke () вызывается в logout (), с истинным параметром, что означает, что фронт-конечный и сервер общаются асинхронно. То есть фронт-энд не получил ответа со стороны сервера, и был выполнен следующее оператор. В этой проблеме фронтальная часть закрыла страницу до того, как был выполнен ответ сервера, поэтому она проявляется, поскольку logout () не выполняется.
3. Решение:
Измените метод связи между фронтальным и сервером на синхронно, то есть изменить True в методе SoapClient.invoke () на false, и проблема была решена.