1. وصف المشكلة:
يتم تعريف الأرملة. location = function () في JS. عند إغلاق الصفحة ، لا يتم تنفيذ وظيفة logout ().
window.onunload = function () {logout () ؛ } دالة تسجيل الدخول (reqparam ، رد الاتصال) {var usermanageserviceurl = "http: //" + getServeraddr () + "/axis2/services/usermangeservice" ؛ 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 ، callback) ؛ }2. سبب المشكلة:
يتم استدعاء طريقة soapclient.invoke () في logout () ، مع المعلمة صواب ، مما يعني أن الواجهة الأمامية والخادم يتواصل بطريقة غير متزامنة. أي أن الواجهة الأمامية لم تتلق استجابة من جانب الخادم ، وتم تنفيذ البيان التالي. في هذه المشكلة ، أغلقت الواجهة الأمامية الصفحة قبل تنفيذ استجابة الخادم ، لذلك يتم تجلى ذلك حيث لم يتم تنفيذ LogOut ().
3. الحل:
قم بتغيير طريقة الاتصال بين الواجهة الأمامية والخادم إلى متزامن ، أي تغيير صحيح في طريقة soapclient.invoke () إلى خطأ ، وتم حل المشكلة.