jQuery Ajax call не работает в IE, JSON respond не проходит

Я пытаюсь сделать ajax вызов с JSON ответить на работу в IE, но ничего не происходит. В настоящее время он прекрасно работает в других браузерах.

Я прочитал много мест, что есть некоторые общие проблемы с 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();
        }
    }
});

});

РНР:

    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 ответ

  1. После долгой отладки я обнаружил, что

        data: new FormData(this),
    

    не включает кнопку отправить в IE, но во всех других браузерах.

    Так что, чтобы исправить это, я просто удалил:

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

    и проблема решена 🙂