Javascript不会调用文件

时间:2017-05-07 07:44:51

标签: javascript php jquery session

我正在尝试使用此处调用的解决方案: How to keep session alive without reloading page?

不幸的是我无法使用它,我对Javascript和jQuery的经验非常有限。

这是我的index.php

<?php
session_start();   
echo session_id();
$_SESSION['id'] = session_id(); //just so there is a variable within the session
?>

编辑:在评论/回答后添加了jquery库

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

<script>
setInterval(function(){
    $.post('refresh_session.php')‌​;
}, 60000);
</script>

这是我写入文件的refresh_session.php,所以我可以测试文件是否实际被调用。

<?php
session_start();
if (isset($_SESSION['id'])){
$_SESSION['id'] = $_SESSION['id']; // or if you have any algo.
}
$date = new DateTime();
$fp = fopen('data.txt', 'a');
fwrite($fp, $date->format('Y-m-d H:i:s') . " " . session_id() ."\n");
fclose($fp); 
?>

如果我手动调用refresh_session.php,我会看到data.txt中显示的日期。 如果我打开index.php并等待data.txt文件改变,则没有任何反应。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

我不知道为什么,但在复制粘贴你的javascript代码后 - 我在Code Snipped中有一些奇怪的字符。它可以是charset问题。代码看起来很好,但支架只看起来像支架。它不是支架。这是什么?我不知道,但看看我在粘贴代码后在Code Snipped中得到的内容:

Strange characters that shouldn't be here

如果使用良好的字符集编写代码,则会执行代码。拿那个工作代码:

setInterval(function(){
    $.post('refresh_session.php');
    alert("dsa");
}, 5000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

顺便说一下 - alert当然只是测试,你可以删除它。

所以,答案是 - 检查你的字符集。