【发布时间】:2016-04-22 00:11:12
【问题描述】:
我使用 Smarthosting 进行托管,他们使用基于云的托管来提供更快的加载时间 - 太棒了!
但我有一个障碍。
我正在通过 PHP 在单独的文件中设置一些会话...
<?php
session_start();
if(filter_var($_POST['question_1'], FILTER_VALIDATE_INT)) {
$_SESSION['question_1'] = addslashes($_POST['question_1']);
}
if(filter_var($_POST['question_2a'], FILTER_VALIDATE_INT)) {
$_SESSION['question_2a'] = addslashes($_POST['question_2a']);
}
if(filter_var($_POST['question_2b'], FILTER_VALIDATE_INT)) {
$_SESSION['question_2b'] = addslashes($_POST['question_2b']);
}
if(filter_var($_POST['question_2c'], FILTER_VALIDATE_INT)) {
$_SESSION['question_2c'] = addslashes($_POST['question_2c']);
}
if(filter_var($_POST['question_2d'], FILTER_VALIDATE_INT)) {
$_SESSION['question_2d'] = addslashes($_POST['question_2d']);
}
if(filter_var($_POST['question_2e'], FILTER_VALIDATE_INT)) {
$_SESSION['question_2e'] = addslashes($_POST['question_2e']);
}
if(filter_var($_POST['question_2f'], FILTER_VALIDATE_INT)) {
$_SESSION['question_2f'] = addslashes($_POST['question_2f']);
}
if(filter_var($_POST['question_2g'], FILTER_VALIDATE_INT)) {
$_SESSION['question_2g'] = addslashes($_POST['question_2g']);
}
?>
然后我访问另一个 PHP 文件,将这些文件放入 JSON 字符串中......
<?php
session_start();
echo json_encode($_SESSION);
?>
但是,在我通过 Ajax 调用 JSON 之前,这可以正常工作...
$.getJSON( "retrieve-variables.php", function( data ) {
var items = [];
...etc....
});
它不是拉最新的会话数据,它似乎是从以前的尝试中拉回会话数据。这与云托管有关吗?还是其他什么问题?有没有办法可以禁用此特定文件和/或整个目录的缓存?
感谢收听。
编辑:如果我直接访问 PHP 检索文件,然后硬刷新它 (CTRL+F5),然后再次浏览表单,它将忽略我选择的答案并输入数据我做了硬刷新
【问题讨论】:
-
您检查控制台是否有错误? PHP 文件是否与 AJAX 请求来自同一域?
-
是的,没有错误。基本上,如果我直接访问 PHP 检索文件,然后硬刷新它 (CTRL+F5),然后再次浏览表单,它将忽略我选择的答案并输入我所做的硬刷新的数据。如果这有意义的话。
标签: php jquery json ajax cloud-hosting