跨域问题之下,session只能保存在当前页面的问题解决方式

项目在使用

// 制定允许其他域名访问
header('Access-Control-Allow-Origin:*');
// 响应类型
header('Access-Control-Allow-Methods:*');
//请求头
header('Access-Control-Allow-Headers:*');
// 响应头设置
header('Access-Control-Allow-Credentials:false');

配合前端解决跨域问题的时候,session会出现问题,只能保存在当前页面,页面跳转之后session就会消失。
在网上找了很多方法,最后还是认为利用第三方插件的形式保存比较好(我也不知道好在哪里,就是好)。

我用的是Redis保存,顺便记录一下Redis的操作(Windows):
1.安装与配置:
我是按照这个教程安装的:https://blog.csdn.net/iloveyougirls/article/details/79688727
安装包:https://github.com/MicrosoftArchive/redis/releases/tag/win-3.2.100
安装成功后,打开cmd,在安装根目录输入redis-server redis.windows.conf,Redis服务就会启动了。
开机启动Redis服务(没试过):redis-server --service-install redis.windows.conf。

这个时候,用phpinfo()输出信息是找不到Redis扩展的,我们还需要安装扩展(划重点)。

下载PHP扩展(用phpinfo()找到适合自己的PHP版本):https://windows.php.net/downloads/pecl/releases/redis/
下载完成后,将压缩包里面的dll和pdb文件放到自己相应PHP版本的EXT文件夹下。
打开php.ini文件,在开启扩展文件的位置添加

extension=php_igbinary.dll
extension=php_redis.dll

这两行代码

完成以上操作,重启服务器,输出phpinfo()就能看到Redis扩展了。

2.Redis的简单缓存操作:

创建Redis对象:

//创建一个redis对象
$this->redis = new \Redis();

//连接本地的 Redis 服务
$this->redis->connect('127.0.0.1', 6379);

设置缓存

$this->redis->set('user_id');

获取缓存

$this->redis->get('user_id');

你可能感兴趣的:(跨域问题之下,session只能保存在当前页面的问题解决方式)