【发布时间】:2014-10-09 10:10:02
【问题描述】:
我有以下 PHP 代码,它计算对页面的每次访问。如果我直接打电话给对方,那是肯定的。如果我进行 Ajax 调用,它总是以 1 重新开始。
<?php
session_start();
header('Access-Control-Allow-Origin: *');
if (!isset($_SESSION['zaehler'])) {
$_SESSION['zaehler'] = 1;
} else {
$_SESSION['zaehler']++;
}
echo $_SESSION['zaehler'];
?>
通过阅读以下内容,我了解到 ajax 调用与直接调用相同:Do AJAX requests retain PHP Session info? 只要边是打开的,我如何计算每个ajaxCall?
我正在做一个简单的 jquery ajaxCall:
$.get( "http://www.huntinggrounds.de/aa.php", function( data ) {
console.log( "dataResponse: ", data );
}) .fail(function(jqXHR, textStatus ) {
console.log( "error",textStatus);
})
.always(function() {
console.log( "finished" );
});
我制作了测试文件,testfile.html,只是一个黑屏。单击桌面并在控制台中查看计数器,php 文件为here。
【问题讨论】:
-
你能通过 AJAX 显示你用来做的代码吗?
-
你确定你的会话在这两种情况下都能开始吗?
-
session_start();是我在 php 文件中的第一行
-
你需要在
header()之前做session_start()。请参阅此处的第一个注释:php.net/manual/en/function.session-start.php -
通过
jsonResponse = JSON.parse(data);您将您的响应视为 JSON。这不是 JSON。你只是在回显一串数字。
标签: php ajax session session-variables