2012-07-06 57 views
2

所以基本上这里是我的脚本,这是在的index.php -不能得到这个AJAX请求工作

<script type="text/javascript"> 
    setInterval(function() { 
     jQuery.ajax({ 
      url: "ajaxChecker.php", 
      context: document.body 
     }).done(function(response) { 
      if(response == true) { 
       location.reload(true); 
      } 
     }); 
    }, 1000 * 60);  
    </script> 

应该每分钟发送请求到balanceChecker.php用于接收数据,然后检查这是真的重新加载页面,否则什么都不做。

这里是ajaxChecker.php文件

<?php 

return true; 

?> 

,但它不工作。有任何想法吗?

编辑的AJAX部分,不工作目前也 -

setInterval(function() { 
     jQuery.ajax({ 
      url: "ajaxChecker.php", 
      context: document.body, 
      success: function(response) { 
       if(response == "true") { 
        location.reload(true); 
       } 
      } 
     }); 
    }, 1000 * 10); 

和ajaxChecker.php文件替换回报呼应和真实的“真”。

在你的PHP文件
+0

使用'success',而不是'.done',看到我的回答如下... – Chris 2012-07-06 13:58:10

+0

没有,对不起,你甚至不得到ajaxChecker.php传递的数据...约回声1为随机什么建议? – Chris 2012-07-06 13:59:29

+0

你尝试过没有setInvervall?只是ajax部分本身? – Chris 2012-07-06 14:04:15

回答

3

你做你的PHP没有输出任何东西。

应该是:

<?php echo "true";?> 

和JS:

if(response == "true") { 

此外,我会建议不包括PHP关闭标签:?>以避免不必要的新的生产线,并禁止发送头信息:

<?php 
    echo "true"; 
+0

好的谢谢!现在我有点进一步了,现在它发送给我这个错误 - Uncaught TypeError:Object#没有方法'完成' – y2ok 2012-07-06 13:49:54

+0

它是因为你应该使用jQuery ajax方法是'success' http:// api .jquery.com/jQuery.ajax/ – antyrat 2012-07-06 13:55:35

+0

好的!谢谢你试试看! – y2ok 2012-07-06 13:55:57

4

<?php 

echo true;//can also use echo 1 

?> 

因为页面不能返回任何

+0

输出'1'之前没有看到过'jQuery.ajax',因为这就是'true'的意思。 – 2012-07-06 13:44:20

1

您可以使用“成功”而不是.done:

var str="the data you want to send to ajaxChecker.php"; 

$.ajax({ 
      type: "POST", 
      url: "ajaxChecker.php", 
      data: str, 
      success: function(msg) { 
      // msg is the return you receive from ajaxChecker.php 

         if(msg==1) {location.reload();} 

       } 
     });