Au début, la méthode de connexion était facilement réalisée en utilisant ajax. Avant de se connecter, il était jugé s'il y avait une valeur dans la session. Si elle existait, il n'était pas nécessaire de se connecter si elle n'existait pas. , la page de connexion apparaîtra pour vous connecter. Depuis que j'utilise le navigateur ff, je n'ai rencontré aucun problème. Lorsque je l'ai soumis aux utilisateurs la semaine dernière, j'ai été choqué qu'il soit indiqué qu'il n'était pas valide après s'être connecté avec IE. Le résultat est vraiment comme ça. . Très embarrassant
Le code de connexion est le suivant :
Copiez le code comme suit :
// Demande au serveur si la session existe
j.ajax({
tapez: OBTENIR,
URL : sessioncheck.asp,
données:,
délai d'attente : 1000,
erreur : fonction(){
alert('désolé, le serveur est occupé maintenant !');
},
succès :fonction(comments_data){
si(comments_data == 1){
el.createDialog(opts);
j.startOver();
}
autre{
var sql = selectSQL(searchkey,stype);
fenêtre.emplacement.href = sql;
}
}
});
C'est à peu près comme ça. Sessioncheck.asp n'est rien de plus que vérifier la session. Le code est le suivant :
Copiez le code comme suit :
si session (nom d'utilisateur) = alors
Réponse.Write(1)
autre
Réponse.Write(2)
finir si
Le résultat est que la session (nom d'utilisateur) d'IE est inutile et le paramètre de délai d'attente est inutile.
J'ai vérifié en ligne pendant longtemps et j'ai découvert qu'il y avait pas mal de problèmes similaires. Finalement, j'ai trouvé la cause : un problème de cache.
Lorsque l'obtention asynchrone est obtenue, si l'URL reste inchangée, les informations du cache sont directement appelées, ce qui entraînera la non-obtention de la valeur de la session.
La solution est très simple : effacez une grande partie du cache asp de Google.
Enfin, un paragraphe a été ajouté à sessioncheck.asp, comme suit :
Copiez le code comme suit :
Réponse.Buffer = True
Réponse.ExpiresAbsolute =Maintenant() - 1
Réponse.Expire=0
Response.CacheControl = pas de cache
si session (nom d'utilisateur) = alors
Réponse.Write(1)
autre
Réponse.Write(2)
finir si