【问题标题】:Javascript does not call fileJavascript不调用文件
【发布时间】:2017-10-05 08:35:22
【问题描述】:

我正在尝试使用此处调用的解决方案: 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 文件更改,什么也不会发生。

我在这里错过了什么?

【问题讨论】:

  • 通常,PHP 会话需要 cookie,否则 PHP 无法识别会话。您确定 $.post() 正在发送 cookie 吗?
  • 控制台中的任何错误..??还将您的电话包装在 $(document).ready();
  • 您的 JS/jQuery 代码没有问题,您要么没有提供正确的 refresh_session.php 路径,要么正如 @Manngo 提到的那样。
  • @RohitS 我在控制台“未捕获的语法错误:无效或意外的令牌”中收到一个错误,它指的是 $.根据在线 Javascript 测试员。
  • @LvS 表示您正在尝试在代码中使用 jquey..$ 参考文档对象 ...确保包含 jquery

标签: javascript php jquery session


【解决方案1】:

我不知道为什么,但是在复制粘贴您的 javascript 代码后 - 我在 Code Snipped 中有奇怪的字符。这可能是字符集问题。代码看起来不错,但括号看起来像括号。不是支架。这是什么?我不知道,但是看看我在粘贴您的代码后在 Code Snipped 中得到了什么:

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

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

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

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

【讨论】:

  • 是的!这就对了。你是怎么用什么工具检查这个的?我从我所引用的线程的评论中复制了代码。可能这给了我非法字符
  • 在写问题或答案时(不在评论中),您可以按 leftCtrl+M 显示代码片段编辑器。
  • 酷,这真的是我永远不会发现的东西。谢谢。
  • 这是我遇到的非常奇怪的问题和答案..如果他\她不复制粘贴 OP 发布的确切代码,有人会如何回答...大声笑
  • @RohitS 在“基本”代码块(8 个空格)中,字符集问题仍然不可见。检查它 - 这是真的。所以,最后,可以复制粘贴代码并认为括号是...括号;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多