如何设置ThinkPHP中的CORS跨域请求?
- 内容介绍
- 文章标签
- 相关推荐
本文共计990个文字,预计阅读时间需要4分钟。
ThinkPHP 6 简介:
路由级 allowCrossDomain() 怎么用才有效
这是 ThinkPHP 6 官方推荐、最轻量也最可控的方式,只对指定 API 路由生效,不污染其他逻辑。
- 必须在
route/app.php中定义 HTTP/HTTPS 路由后链式调用:->allowCrossDomain(),写在闭包里或漏掉链式调用都会失效 - 不传参默认设
Access-Control-Allow-Origin: *;要指定来源,传数组:->allowCrossDomain(['https://admin.example.com', 'http://localhost:3000']) - 前端带 Cookie 或
Authorization头时,第二个参数必须为true:->allowCrossDomain(['https://example.com'], true),否则浏览器静默拦截 - 该方法对
console或event类路由无效,别试图用它处理命令行任务
CorsMiddleware 中 OPTIONS 预检怎么不报 405
全局中间件里只加响应头是错的,90% 的跨域失败都卡在 OPTIONS 请求没被正确响应。
本文共计990个文字,预计阅读时间需要4分钟。
ThinkPHP 6 简介:
路由级 allowCrossDomain() 怎么用才有效
这是 ThinkPHP 6 官方推荐、最轻量也最可控的方式,只对指定 API 路由生效,不污染其他逻辑。
- 必须在
route/app.php中定义 HTTP/HTTPS 路由后链式调用:->allowCrossDomain(),写在闭包里或漏掉链式调用都会失效 - 不传参默认设
Access-Control-Allow-Origin: *;要指定来源,传数组:->allowCrossDomain(['https://admin.example.com', 'http://localhost:3000']) - 前端带 Cookie 或
Authorization头时,第二个参数必须为true:->allowCrossDomain(['https://example.com'], true),否则浏览器静默拦截 - 该方法对
console或event类路由无效,别试图用它处理命令行任务
CorsMiddleware 中 OPTIONS 预检怎么不报 405
全局中间件里只加响应头是错的,90% 的跨域失败都卡在 OPTIONS 请求没被正确响应。

