我有一个带有会话变量的PHP脚本,设置如下:
$_SESSION['VAR1'] = "test"
Run Code Online (Sandbox Code Playgroud)
现在,我通过jQuery启动的POST请求使用AJAX,因此我有一个名为ajax.php具有所有必需功能的脚本.
当我尝试echo $_SESSION['VAR1']在ajax.php中访问我的会话变量()时,它什么都不产生.
会话不能用于AJAX请求吗?
cle*_*tus 30
您需要在访问会话之前访问会话的每个页面上执行此操作:
session_start();
Run Code Online (Sandbox Code Playgroud)
这意味着在设置会话变量的页面和尝试检索它的AJAX页面上.两者都需要打电话session_start().
只要AJAX请求调用同一域中的脚本(从而获得对会话cookie的访问权限),就没有理由无法访问会话变量.毕竟AJAX请求只是另一个HTTP请求.
确保两个页面的域名(即AJAX容器和AJAX脚本相同).这是一个例子:
http://mydomain.com/login.php (set session variables here)
http://mydomain.com/ajax-container.php (session variables are visible here)
http://mydomain.com/ajax-script.php (session variables are visible here)
http://www.mydomain.com/ajax-script.php (session variables are NOT visible here)
Run Code Online (Sandbox Code Playgroud)
另一个:
http://www.mydomain.com/login.php (set session variables here)
http://www.mydomain.com/ajax-container.php (session variables are visible here)
http://www.mydomain.com/ajax-script.php (session variables are visible here)
http://mydomain.com/ajax-script.php (session variables are NOT visible here)
Run Code Online (Sandbox Code Playgroud)