我正在使用Symfony 1.3编写一个Web应用程序。在通过jQuery的$.ajax()
调用调用动作后,我的会话变量出现问题。事情按此顺序发生:
操作设置会话变量如下:
$this->getUser()->setAttribute('uploaded-files', $uploadedFiles);
然后,当操作调用视图组件时,生成的HTML页面包含以下调用:
$.ajax({
type: "POST",
url: '<?php echo url_for("content/merge"); ?>',
cache: false,
success: mergingCompleteCallback
});
我点击触发上述ajax调用的按钮。该调用执行相应的操作方法,但是当我打印出'uploaded-files'会话变量的内容时,它是空的。
我还检查了对设置变量的页面的调用和读取变量的页面(ajax调用)之间的会话ID是否保持相同,并且会话ID没有改变。我在网上搜索了几个小时,但我找不到解决方案。
答案 0 :(得分:3)
我遇到了类似的问题,问题是我使用主机值来存储带有'www'的cookie,即www.mydomain.com,而我在没有' www '的情况下发出Ajax请求< / p>
解决方案是使用像host这样的通配符。 例如 .mydomain.com 作为您在浏览器端存储会话cookie的主机。
请确保您不是此的受害者?
答案 1 :(得分:1)
您还可以将会话值添加到调用本身,这样您就不必在AJAX调用中获取它。它有点hacky,但它会工作。
您是否在开发栏中看到了会话变量?也许它的缓存,我之前有过这样的缓存问题。