Heim  >  Artikel  >  Web-Frontend  >  Die globale jQuery-Ajax-Funktion behandelt das Ajax-Sprungproblem nach Ablauf der Sitzung

Die globale jQuery-Ajax-Funktion behandelt das Ajax-Sprungproblem nach Ablauf der Sitzung

高洛峰
高洛峰Original
2017-01-07 09:39:401300Durchsuche

Bei der Arbeit im Internet müssen wir häufig das Problem des Sitzungsablaufs berücksichtigen. Wenn die Sitzung abläuft, springt die Seite jedoch auf zwei Arten Benutzer fordern den Hintergrund an: Die herkömmliche Methode und die asynchrone Anforderung sind einfacher zu lösen. Die Anforderung wird in den Hintergrund verschoben und der abgelaufene Vorgang wird direkt aktualisiert Der Sitzungsablauf kann nicht auf die übliche Weise gehandhabt werden und erfordert zusätzliche Vorgänge.

Spezifische Idee: Bestimmen Sie, ob es sich um eine Ajax-Anfrage im Interceptor handelt. Wenn es sich um eine Ajax-Anfrage handelt, wird eine Nachricht zurückgegeben. Fügen Sie der Seite ein globales Ajax-Verarbeitungsereignis hinzu, um die Nachricht zu beurteilen Wird gemeldet, dass die Sitzung abgelaufen ist, dann wird der Standort zur Anmeldeseite gehen

Im ersten Schritt ermittelt der Interceptor, ob es sich um eine Ajax-Anfrage handelt:

if(request.getHeader("x-requested-with")!=null
&& request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){
//是ajax请求,则返回个消息给前台
PrintWriter printWriter = response.getWriter();
printWriter.print("{sessionState:timeout}");
printWriter.flush();
printWriter.close();
}else{
//不是ajax请求,则直接跳转页面
}

Der zweite Schritt besteht darin, ein globales Ajax-Verarbeitungsereignis einzurichten, das den Sitzungsablauf verwaltet, ähnlich einem Interceptor oder Filter:

$.ajaxSetup({
contentType:"application/x-www-form-urlencoded;charset=utf-8",
cache:false ,
complete:function(data,TS){
//对返回的数据data做判断,
//session过期的话,就location到一个页面
}
}
});

Dies ist ein asynchroner Verarbeitungsmechanismus, der auf jQuery basiert. Ich habe den Code, den ich beim letzten Mal geschrieben habe, nicht mitgebracht. Ein Teil des Codes im Artikel wurde online gefunden und eingefügt Es ist schon eine halbe Stunde am Morgen und ich bin zu müde. Ich habe gerade meine Gedanken aufgezeichnet.

PS: Globale Überwachung des Ajax-Betriebs, Ungültigmachung der Benutzersitzung

jQuery(function ($) {
// 备份jquery的ajax方法
var _ajax = $.ajax;
// 重写ajax方法,先判断登录在执行success函数
$.ajax = function (opt) {
var _success = opt && opt.success || function (a, b) { };
var _opt = $.extend(opt, {
success: function (data, textStatus) {
try {
if (data.sessionstatus == false) {
//用户失效进行操作
//return;
}
} catch (e) {
}
_success(data, textStatus);
}
});
_ajax(_opt);
};
});

Weitere globale jQuery-Ajax-Funktionen zur Behandlung von Ajax-Sprungproblemen nach Sitzungsablauf finden Sie hier zu verwandten Artikeln PHP chinesische Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn