2016-05-27 63 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'])) { 

和問題解決:)

相關問題