Saat melakukannya pada tahap awal, cara loginnya mudah dilakukan dengan menggunakan ajax. Sebelum login dinilai apakah ada nilai di sesi tersebut. Jika ada, tidak perlu login; , halaman login akan muncul untuk login. Karena saya menggunakan browser ff, saya tidak menemukan masalah apa pun. Ketika saya mengirimkannya ke pengguna minggu lalu, saya terkejut karena dikatakan tidak valid setelah masuk dengan IE. Hasilnya sungguh seperti ini. . Sangat memalukan
Kode loginnya adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
//Pertanyaan dari server apakah sesi ada
j.ajax({
ketik: DAPATKAN,
url:sessioncheck.asp,
data:,
batas waktu: 1000,
kesalahan: fungsi(){
alert('maaf, server sedang sibuk sekarang!');
},
sukses:fungsi(komentar_data){
jika(komentar_data == 1){
el.createDialog(memilih);
j.startOver();
}
kalau tidak{
var sql = pilihSQL(kunci pencarian,tipe);
jendela.lokasi.href = sql;
}
}
});
Kira-kira seperti ini. Sessioncheck.asp tidak lebih dari pengecekan session.
Copy kode kodenya sebagai berikut:
jika sesi(nama pengguna) = maka
Respon.Tulis(1)
kalau tidak
Respon.Tulis(2)
berakhir jika
Hasilnya sesi (nama pengguna) IE tidak berguna, dan pengaturan batas waktu tidak berguna.
Saya sudah lama memeriksa online dan menemukan ada beberapa masalah serupa. Akhirnya, saya menemukan penyebabnya: masalah cache.
Ketika get asynchronous diperoleh, jika URL tetap tidak berubah, informasi dalam cache langsung dipanggil, yang mengakibatkan nilai dalam sesi tidak diperoleh.
Solusinya sangat sederhana, hapus banyak cache asp Google.
Akhirnya, sebuah paragraf ditambahkan ke sessioncheck.asp, sebagai berikut:
Copy kode kodenya sebagai berikut:
Respon.Buffer = Benar
Respon.ExpiresAbsolute =Sekarang() - 1
Respon. Kedaluwarsa = 0
Response.CacheControl=tanpa cache
jika sesi(nama pengguna) = maka
Respon.Tulis(1)
kalau tidak
Respon.Tulis(2)
berakhir jika