PHP / AJAX请求:session_start():无法发送sesssion缓存限制器 - 已发送的标头

时间:2015-07-26 09:12:35

标签: javascript php mysql ajax http-headers

我遇到了一个无法找到解决方案的问题:

在我的Web应用程序中使用鼠标按键(onclick="")后,我通过AJAX请求调用PHP函数。这没什么不寻常的。但是,PHP函数需要访问一些会话变量。当我通过HTML5 onclick和AJAX请求调用PHP函数时,网页已经呈现,这可能意味着标题已经被发送。

可能因此,我收到以下错误:

session_start(): Cannot send session cache limiter - headers already sent

这里的关键信息是我通过AJAX请求调用的PHP函数在调用session_start()之前不会向浏览器输出任何内容。

请问有什么解决办法吗?最初,我认为,AJAX函数调用独立于呈现网页,我基本上可以通过AJAX随时调用session_start()。但是现在,在我看来,如果用AJAX请求调用我不能从我的PHP函数中调用session_start(),因为所有的AJAX调用都是在渲染网页之后执行的,因此在发送标题之后执行了吗?

  • 客户端:HTML5,JavaScript(无jquery)
  • 服务器端:PHP,MySQL

如果您对解决方法有任何想法,那会有所帮助。出于安全原因,我不想将所需的参数作为POST参数传递。由于速度原因,我不想从我的MySQL数据库访问它们。我真的想知道,如果有办法通过AJAX调用访问会话变量。

我想知道的是,是否可以用本地PHP函数调用替换AJAX调用。然后,我可以利用PHP global变量。

谢谢。

0 个答案:

没有答案