跨域请求

最后更新于:2022-04-02 07:49:03

## 跨域请求 如果某个路由或者分组需要支持跨域请求,可以使用 ~~~ Route::get('new/:id', 'News/read') ->ext('html') ->allowCrossDomain(); ~~~ >[danger] 跨域请求一般会发送一条`OPTIONS`的请求,一旦设置了跨域请求的话,不需要自己定义`OPTIONS`请求的路由,系统会自动加上。 跨域请求系统会默认带上一些Header,包括: ~~~ Access-Control-Allow-Origin:* Access-Control-Allow-Methods:GET, POST, PATCH, PUT, DELETE Access-Control-Allow-Headers:Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With ~~~ 你可以添加或者更改Header信息,使用 ~~~ Route::get('new/:id', 'News/read') ->ext('html') ->allowCrossDomain([ 'Access-Control-Allow-Origin' => 'thinkphp.cn', 'Access-Control-Allow-Credentials' => 'true' ]); ~~~ `V6.0.3+`版本开始增加了默认的预检缓存有效期(默认为30分钟),你可以自定义有效期,例如: ~~~ Route::get('new/:id', 'News/read') ->ext('html') ->allowCrossDomain([ 'Access-Control-Allow-Origin' => 'thinkphp.cn', 'Access-Control-Allow-Credentials' => 'true', 'Access-Control-Max-Age' => 600, ]); ~~~
';