thinkphp6自带的跨域中间件AllowCrossDomain如何配置生效
背景
thinkphp官方自带的AllowCrossDomain
自称是跨域请求支持
,但配置生效后发现并不是通俗的Access-Control-Allow-Origin: *
响应头。
解决
查看代码得知thinkphp调度管道
时对handle的第三个及以上的传参是可控的
如何配置传参:
<?php
// config/middleware.php
return [
[\think\middleware\AllowCrossDomain::class, [
['Access-Control-Allow-Origin' => '*']
]]
];
另一种跨域配置:
<?php
// config/cookie.php
// 同样是利用自带的跨域请求支持中间件
return [
// cookie 保存时间
'expire' => 0,
// cookie 保存路径
'path' => '/',
// cookie 有效域名 这里填入前端部署的域名即可
'domain' => '',
// cookie 启用安全传输
'secure' => false,
// httponly设置
'httponly' => false,
// 是否使用 setcookie
'setcookie' => true,
// samesite 设置,支持 'strict' 'lax'
'samesite' => '',
];
thinkphp6自带的跨域中间件AllowCrossDomain如何配置生效
http://blog.icy8.cn/posts/37831/