In der Anfangsphase wurde die Anmeldemethode einfach mit Ajax durchgeführt. Vor der Anmeldung wurde beurteilt, ob ein Wert in der Sitzung vorhanden war. Wenn er nicht vorhanden war, war eine Anmeldung nicht erforderlich , wird die Anmeldeseite zum Anmelden angezeigt. Da ich den ff-Browser verwende, habe ich keine Probleme festgestellt. Als ich es letzte Woche an Benutzer übermittelte, war ich schockiert, als es hieß, es sei ungültig, nachdem ich mich mit dem IE angemeldet hatte. Das Ergebnis ist wirklich so. . Sehr peinlich
Der Login-Code lautet wie folgt:
Kopieren Sie den Codecode wie folgt:
//Abfrage vom Server, ob Sitzung vorhanden ist
j.ajax({
Typ:GET,
URL:sessioncheck.asp,
Daten:,
Zeitüberschreitung: 1000,
Fehler: Funktion(){
alarm('Entschuldigung, der Server ist gerade beschäftigt!');
},
success:function(comments_data){
if(comments_data == 1){
el.createDialog(opts);
j.startOver();
}
anders{
var sql = selectSQL(searchkey,stype);
window.location.href = sql;
}
}
});
Es ist ungefähr so: Sessioncheck.asp ist nichts anderes als die Überprüfung der Sitzung.
Kopieren Sie den Codecode wie folgt:
if session(username) = then
Antwort.Write(1)
anders
Antwort.Write(2)
Ende wenn
Das Ergebnis ist, dass die Sitzung (Benutzername) des IE nutzlos ist und die Timeout-Einstellung nutzlos ist.
Ich habe lange online nachgeschaut und festgestellt, dass es einige ähnliche Probleme gibt. Schließlich habe ich die Ursache gefunden: Cache-Problem.
Wenn beim asynchronen Abrufen die URL unverändert bleibt, werden die Informationen im Cache direkt aufgerufen, was dazu führt, dass der Wert in der Sitzung nicht abgerufen wird.
Die Lösung ist sehr einfach: Löschen Sie einen großen Teil des Google-ASP-Cache.
Schließlich wurde sessioncheck.asp ein Absatz wie folgt hinzugefügt:
Kopieren Sie den Codecode wie folgt:
Response.Buffer =True
Response.ExpiresAbsolute =Now() - 1
Response.Expires=0
Response.CacheControl=kein Cache
if session(username) = then
Antwort.Write(1)
anders
Antwort.Write(2)
Ende wenn