首页 > 解决方案 > php - 创建自定义标头时丢失会话变量

问题描述

我正在使用带有 Jquery 作为前端和 php 作为后端的 Vue。因为我的客户端应用程序在 LAN 中与服务器不同的计算机上运行以模拟现实世界的情况,所以我得到:

无法加载http://192.168.0.15/game/src/server/Action.php:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://192.168.0.15:8080 ”。

所以我创建了自定义标题来防止它:

session_start();
header("Access-Control-Allow-Origin: *");
 header("Access-Control-Allow-Credentials: true");
 header("Access-Control-Allow-Methods: GET,HEAD,OPTIONS,POST,PUT");
 header("Access-Control-Allow-Headers: Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");

但是,如果我这样做,我将失去任何

$_SESSION

数据。有没有办法防止它?我使用来自 jQuery 的 $.ajax 将数据发布到服务器,并且在一次调用中设置会话数据时,我无法在第二次调用中检索它,尽管在第一次调用结束时检查 $_SESSION['user_id'] 我设置了所有变量正确。有任何想法吗 ?

标签: javascriptphpjqueryajaxsession

解决方案


推荐阅读