thinkphp 跨域 代理请求 token

thinkphp 中间件跨域
thinkphp 解决代理问题
在app目录下的middleware文件中
开启全局开局允许中间件
\think\middleware\AllowCrossDomain::class
原来这么简单 我自己弄vue 弄了一下午 狗贼 呀 不要跑

php 原生 响应头 跨域

$web = request()->header(‘Origin’);
//跨域请求设置
header(“Access-Control-Request-Method:GET,POST);
header(“Access-Control-Allow-Credentials:true);
header(“Access-Control-Allow-Origin:.$web);
header(“Access-Control-Allow-Headers:token,Content-Type, Authorization, Accept, Range, Origin,Token,Lang,lang”);
if($this->request->isOptions()){
exit;
}

php中发送https请求时 会出现curl未开启ssl安全问题
将其换成http普通请求就好

今天遇到一个跨域问题记录学习下:

一、问题:

跨域请求中包含自定义header字段时,浏览器console报错。

Request header field xfilesize is not allowed by Access-Control-Allow-Headers

二、原因:

包含自定义header字段的跨域请求,浏览器会先向服务器发送OPTIONS请求,探测该服务器是否允许自定义的跨域字段。

如果允许,则继续实际的POST/GET正常请求,否则,返回标题所示错误。

所以需要在你服务端的Access-Control-Allow-Headers中设置你自定义的请求头内容

示例 thinkphp6中

//使用全局开局中间件
\think\middleware\AllowCrossDomain::class

在 AllowCrossDomain中修改

关于token处理

后端方面 全局路由中间件 只负责处理token是否是对的 不负责做别的
生成token只在login中生成

thinkphp中 中间件使用$request得到的controller名字都为 小写 切记是小写的 所以判断的时候一定要非常小心的注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值