在php中丢失会话变量,可能是CORS引起的

时间:2018-07-15 22:44:15

标签: javascript php session vue.js cors

我正在使用Vue.js和局域网中的服务器端php(也是mysql)开发SPA应用程序。主要思想是客户端通过ajax(发布)调用文件Action.php来从数据库中收集数据,检查登录和传递以及其他数据。一切正常,因为Action.php开头为:

square(g , x+size*i, y, size, Color.BLACK, true);

这使我可以运行Action.php文件并忽略CORS中的错误。但是,登录(并获得正确的授权)后,我输入了以下内容(出于可读性-硬编码值):

session_start();

header("Access-Control-Allow-Origin: http://192.168.0.14:8080");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Allow-Headers: Content-Type");

会话数组中的user_id的值已设置并保存到文件执行结束(我可以检查它),但是如果以后再调用(即使在下一个ajax调用中),Action.php(或任何其他已开始会话,未设置user_id的值。它不会被覆盖,未分配或在任何地方重新生成。只要文件正在执行然后死,似乎$ _SESSION仍然存在。我希望某些带有会话cookie的标头不会发送因此所有会话数据都丢失了,但是我不确定是什么错误。

我还将标头的第一部分更改为:

 $_SESSION['user_id'] = 123;

如建议的herehere。这些帖子都没有帮助我。

我这样访问服务器端文件:

 header("Access-Control-Allow-Origin: *");

任何想法都将不胜感激。

0 个答案:

没有答案