我正在使用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;
我这样访问服务器端文件:
header("Access-Control-Allow-Origin: *");
任何想法都将不胜感激。