为什么这个AJAX调用在IE 11中不起作用?

时间:2017-10-13 22:36:13

标签: javascript php jquery ajax pdo

我的网站上有一个通知系统,它利用AJAX实时更新​​。问题是它适用于除IE 11之外的所有浏览器。环顾四周后,我注意到有人建议在通话中使用cache:false。但是,这使得代码在所有浏览器中都不起作用。有谁知道解决方案是什么?

JAVASCRIPT:

<script>
$(document).ready(function(){

$('.notif_count').html('0');

 function load_unseen_notification(view = '')
 {
  $.ajax({
   url:"notif_follow.php",
   method:"POST",
   data:{view:view},
   dataType:"json",
   success:function(data)
   {
    $('.notif_follow').html(data.notification);
    if(data.notif_count > 0)
    {
     $('.notif_count').html(data.notif_count);
    }
   }
  });
 }

 load_unseen_notification();

 $(document).on('click', '.notif', function(){
  $('.notif_count').html('0');
  load_unseen_notification('yes');
 });

 setInterval(function(){ 
  load_unseen_notification();; 
 }, 5000);

});
</script>  

PHP:

<?php
session_start();
require_once 'class.channel.php';

$user_notif = new USER();

$user_id = $_SESSION['userID'];

if(isset($_POST["view"]))
{

if($_POST["view"] != '')
{
$stmt = $user_notif->runQuery("UPDATE notif_follow SET status = 1 WHERE receive_id = ?");
$stmt->bindValue(1,$user_id);
$stmt->execute();
}

$stmt = $user_notif->runQuery("SELECT * FROM tbl_users WHERE userID=:uid");
$stmt->execute(array(":uid"=>$user_id));
$row = $stmt->fetch(PDO::FETCH_ASSOC);

$stmt = $user_notif->runQuery("SELECT * FROM notif_follow WHERE receive_id= ? ORDER BY id DESC LIMIT 5");
$stmt->bindValue(1,$user_id);
$stmt->execute();
$notifs = $stmt->fetchAll(PDO::FETCH_ASSOC);

$notification = '';

if(count($notifs) > 0)
 {
  foreach($notifs as $notif)
  {

  $send_id = $notif['send_id'];

  $query2 = $user_notif->runQuery("SELECT * FROM following WHERE user1_id=:uid1 AND user2_id=:uid2");
  $query2->execute(array(":uid1"=>$user_id,":uid2"=>$send_id));
  $query2result = $query2->fetchAll(PDO::FETCH_ASSOC);

  if(count($query2result) > 0){
  $follow = '<a href="followoff.php?id='.$send_id.'"><button class="button" style="margin:2px;">Remove Channel</button></a>';
  }
  else{
  $follow = '<a href="followon.php?id='.$send_id.'"><button class="button" style="margin:2px;">Add Channel</button></a>';
  }

  $notification .= '
   <li>
     <div class="notifbox">
       <strong style="color: #4b8ed3;">'.$notif["send_name"].'</strong><p style="color: #fff;"> has added you.</p>

     '.$follow.'

       <a href="index.php?id='.$notif["send_id"].'"><button class="button" style="margin:2px;">View Channel</button></a>
     </div>
   </li>
   <div class="sectionheader3"></div>
   ';

  }
 }
 else
 {
  $notification .= '<li><h2 style="color: #4b8ed3; padding: 10px;">No Notifications Found<h2></li>';
 }

$count = $user_notif->runQuery("SELECT * FROM notif_follow WHERE receive_id= ? AND status= 0");
$count->bindValue(1,$user_id);
$count->execute();
$countresult = $count->fetchAll(PDO::FETCH_NUM);

if(count($countresult) > 0){
  $notif_count = count($countresult);
}
else{
  $notif_count = 0;
}

header('Content-type: application/json');
$notif_array = array('notification'=>$notification,'notif_count'=>$notif_count);
echo json_encode($notif_array);

}
?>

0 个答案:

没有答案