JavaScript 不调用文件

标签 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文件更改,则什么也不会发生。

我在这里缺少什么?

最佳答案

我不知道为什么,但在复制粘贴您的 javascript 代码后 – 我在 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 当然只是测试,你可以删除它。

所以,答案是 – 检查您的字符集。

关于JavaScript 不调用文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43829042/

相关文章:

JavaScript/jQuery : firefox hangs on DOM loop insertion (show images one by one)

javascript - 当选中第 n 个复选框时,针对某个类的第 n 个元素?

javascript - 如何做响应式拖放绝对定位?

javascript - JQuery 动画

javascript - 循环order.find、收集并向前端发送大量数据。方法不好?

PHP:向 Eclipse 控制台发送消息/记录日志?

php - jQuery+PHP。请求/响应

php - 教义中的并发

javascript - 类型化js在中间人中不起作用

javascript - 'If' -'else' jQuery 函数中的语句