jQuery AJAX请求在Internet Explorer中不起作用

时间:2012-03-10 01:22:41

标签: php javascript jquery ajax

我在我的网站上有一个ajax登录,但由于一些奇怪的原因,它在Internet Explorer中不起作用,但它适用于Webkit,最新版本的FireFox和Opera。所以我不认为这是我的代码,但是对于IE的ajax请求是否存在已知问题?谢谢!


使用Javascript:

$('.mainlogin').submit(function() {
    var username = $('#main_username').val();
    var password = $('#main_pword').val();
    $.ajax({
        url: 'log.php',
        type: 'POST',
        data: {
            user: username,
            pass: password
        },
        success: function(response) {
            if (response == 'success') {
                window.location.reload();
            } else {
                $('.logerror').fadeIn(250);
            }
        }
    });
    return false;
});

PHP:

<?php 
require_once('.conf.php');
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['pass']);

$result = mysql_query("SELECT * FROM accountController WHERE username = '$user'");
    while ($row = mysql_fetch_array($result)) {
        if (sha1($user.$pass) == $row['pword']) {
            session_start();
            $_SESSION['login'] = 1;
            $_SESSION['uname'] = $row['username'];
            $_SESSION['id'] = $row['id'];
            echo "success";
        } 
    }    
?>

1 个答案:

答案 0 :(得分:1)

@“IE8,IE9的工作时间约为25%。”

因为IE8:

“使用第一个会话cookie集,而不是Firefox中的最后一个。” http://anvilstudios.co.za/blog/php/session-cookies-faulty-in-ie8/

要解决此问题,您只需设置:

session_regenerate_id(true);

删除旧会话ID并强制IE8使用新会话ID。

@FAIL:

缓存可能是问题,请尝试添加:

cache: false,

@ FAIL2:

success: function(response) {
            if (response == 'success') {

                 document.getElementById('status').innerHTML=http.responseText;
            }