jQuery Ajax调用不能在IE中工作,JSON响应无法通过

时间:2016-05-27 10:22:09

标签: javascript php jquery json ajax

我正在尝试使用json响应IE中的工作进行ajax调用,但什么也没发生。它目前在其他浏览器中运行良好。

我已经阅读了很多地方,ajax和IE存在一些常见问题,但没有一个解决方案有所帮助。

我也尝试过使用$ .ajaxSetup({cache:false});但这并没有解决它,它似乎与缓存没有任何关系。

我非常感谢任何帮助。

代码粘贴在。

之下

JS:

$(document).on("submit", ".loginForm", function(event) {

event.preventDefault();

var url=$(this).attr("action");
$.ajax({
    url: url,
    type: 'POST',
    data: new FormData(this),
    processData: false,
    contentType: false,
    datatype: "json",
    success: function (data, status)
    {
        if(data.success == "success"){
            window.location.replace("dashboard.php");
        } else {
            $('#loginResponse').html(data.success).css("color", "red").fadeIn().delay(2000).slideToggle();
        }
    }
});

});

PHP:

    header("Content-Type: application/json", true);

    if(isset($_POST['submit_login'])) {

    $username = $_POST['username'];
    $password = $_POST['password'];

    $sql = 'SELECT user_id, first_name, password FROM arbor_admin_users WHERE username=?';

    $stmt = $connection->prepare($sql);
    $stmt->bind_param('s', $username);
    $stmt->bind_result($uid, $fn, $pwhash);
    $stmt->execute();
    $stmt->store_result();
    if($stmt->num_rows > 0) {
        while($stmt->fetch()){


    //        if ($password === $pw) {
            if (password_verify($password, $pwhash)) {
            session_start();
            $_SESSION['logged_in'] = $uid;
            $_SESSION['firstname'] = $fn;
//            header("Location: ../dashboard.php");
            echo json_encode(array('success'=>"success"));
            exit();

            } else {

        echo json_encode(array('success'=>"Wrong username or password!"));

            }
        }
    } else {
        echo json_encode(array('success'=>"Wrong username or password!"));
    }
}

1 个答案:

答案 0 :(得分:0)

经过长时间的调试,我发现了

    data: new FormData(this),

不包含IE中的提交按钮,但在所有其他浏览器中都包含。

所以要解决它,我刚刚删除:

  if(isset($_POST['submit_login'])) {

问题解决了:)