IE9 PHP和session_destroy通过卸载时的ajax - 在刷新页面上触发

时间:2012-09-20 10:38:42

标签: php ajax session internet-explorer-9

我对IE9有这个奇怪的问题(没有在任何其他IE中测试它) - 当我登录到网站时,每当我刷新页面时,以下代码都会触发:

jQuery(window).bind("beforeunload", function() {
    $.get('session_destroy.php', function() {
    //  alert('done');
    });
});
有趣的是,当我调用开发人员工具F12 - 然后刷新时,我可以看到对session_destroy.php的快速调用 - 但它不会在刷新时将我注销!

这是我的文件定义:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> //- note this i need because on intranet sites IE gt 8 force compatibility mode of IE7 - this makes all jquery sucks..
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

不知道这是否相关,但有时候我必须登录两次,因为它从第一次开始就没有... 我还使用ajax登录:

$(document).ready(function(){

    $("#submit").click(function(){
        username = $("#username").val();
        password = $("#password").val();
        $.ajax({
            type: "POST",
            url: "login_db.php",
            data: "username="+username+"&password="+password,
            success: function(html){
                if(html.length>0)
                {
                    switch(html)
                    {
                        case "1": tab = "Production";
                        break;
                        case "2": tab = "Recordings";
                        break;
                        default: tab = "Summary";
                    }
                    window.location.hash = '';
                    var url=window.location;

                    window.location.href= url+tab;
                    location.reload();
                }
                else
                {
                    $("#add_err").html("Wrong username or password");
                }
            }
        });
        return false;
    });
});

Firefox和Chrome中的一切正常

0 个答案:

没有答案