Symfony,jQuery.ajax()调用,会话变量丢失

时间:2011-08-29 16:08:39

标签: jquery ajax session symfony1

我正在使用Symfony 1.3编写一个Web应用程序。在通过jQuery的$.ajax()调用调用动作后,我的会话变量出现问题。事情按此顺序发生:

  1. 操作设置会话变量如下:

    $this->getUser()->setAttribute('uploaded-files', $uploadedFiles);
    
  2. 然后,当操作调用视图组件时,生成的HTML页面包含以下调用:

    $.ajax({
      type: "POST",
      url: '<?php echo url_for("content/merge"); ?>',
      cache: false,
      success: mergingCompleteCallback
    });
    
  3. 我点击触发上述ajax调用的按钮。该调用执行相应的操作方法,但是当我打印出'uploaded-files'会话变量的内容时,它是空的。

    我还检查了对设置变量的页面的调用和读取变量的页面(ajax调用)之间的会话ID是否保持相同,并且会话ID没有改变。我在网上搜索了几个小时,但我找不到解决方案。

2 个答案:

答案 0 :(得分:3)

我遇到了类似的问题,问题是我使用主机值来存储带有'www'的cookie,即www.mydomain.com,而我在没有' www '的情况下发出Ajax请求< / p>

解决方案是使用像host这样的通配符。 例如 .mydomain.com 作为您在浏览器端存储会话cookie的主机。

请确保您不是此的受害者?

答案 1 :(得分:1)

您还可以将会话值添加到调用本身,这样您就不必在AJAX调用中获取它。它有点hacky,但它会工作。

您是否在开发栏中看到了会话变量?也许它的缓存,我之前有过这样的缓存问题。