2016-05-27 62 views
0

我想让一个json调用响应在IE中工作,但没有发生。目前它在其他浏览器中工作正常。jQuery的Ajax调用不工作在IE浏览器,JSON响应没有通过

我已经阅读了很多地方,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!")); 
    } 
} 
+0

'什么是happening'没有错误控制台?请求发送还是什么?只有在IE浏览器?哪个IE版本?浏览器缓存怎么样?检查至少比提交事件被解雇 –

+0

控制台给了我什么都没有,是的..只有IE浏览器,到目前为止,它似乎是所有的IE版本,在其他浏览器,它的工作完美..而且它不是缓存没有:( –

+0

我的意思是浏览器的缓存,这意味着你必须清除浏览器缓存(ctrl + F5,如果我是正确的),我不是在谈论缓存的请求,你还可以检查而不是提交事件被解雇吗?! –

回答

0

很长一段时间调试后,我发现

data: new FormData(this), 

不包括在IE提交按钮,但不会在所有其他浏览器。

因此,要解决这个问题,我只是删除:

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

和问题解决:)

相关问题