2012-04-12 76 views
0

我想要做的是每2秒检查我的CodeIgniter以查看会话是否仍然存在。但由于某种原因,当我使用下面的代码时,出现此错误:setInterval没有正确处理

"Uncaught SyntaxError: Unexpected Token ;"

有关为何发生这种情况的任何想法?

的Javascript:

setInterval(function() { 
     $.getJSON("<?=base_url()?>index.php/regUserDash/sessionExpire"), function(data) { 
      var sessionState = jQuery.parseJSON('{"sessionExpired":"true","sessionExpired":"false"}'); 
      if(sessionState.sessionExpired === "true") { 
       alert('expired'); 
      } else if(sessionState.sessionExpired == "false") { 
       alert('not expired'); 
      } 
     }); 
}, 2000); 

词代码:

public function sessionExpire() { 
    if ($this->session->userdata("logged") == "1") { 
     echo json_encode(array("sessionExpired" => false)); 
    } elseif($this->session->userdata("logged") == "0") { 
     echo json_encode(array("sessionExpire" => true)); 
    } 
} 

回答

3

您有一个额外的括号这里:

$.getJSON("<?=base_url()?>index.php/regUserDash/sessionExpire") // <-- 

这应该工作:

setInterval(function() { 
    $.getJSON("<?=base_url()?>index.php/regUserDash/sessionExpire", function(data) { 
     var sessionState = $.parseJSON('{"sessionExpired":"true","sessionExpired":"false"}'); 
     if (sessionState.sessionExpired === "true") { 
      alert('expired'); 
     } else if (sessionState.sessionExpired == "false") { 
      alert('not expired'); 
     } 
    }); 
}, 2000);​ 
+0

好吧很酷。谢啦! – 2012-04-12 22:42:13

+0

没问题,很高兴我可以帮忙。 – 2012-04-12 22:42:24

+0

@MichaelGrigsby:如果这解决了您的问题,请将其标记为“已接受的答案”。 [更多信息](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – 2012-04-13 00:18:14