thinkphp 框架自带的跨域请求

thinkphp 框架自带的跨域请求

allowCrossDomain

跨域请求

如果某个路由或者分组需要支持跨域请求,可以使用

Route::get('new/:id', 'News/read')
    ->ext('html')
    ->allowCrossDomain();

跨域请求一般会发送一条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')
    ->header('Access-Control-Allow-Origin','thinkphp.cn')
    ->header('Access-Control-Allow-Credentials', 'true')
    ->allowCrossDomain();

https://www.kancloud.cn/manual/thinkphp5_1/489844

如果你想限制跨域请求的域名,则可以增加一条参数;
Route::rule('col/:id','Collect/read')
->allowCrossDomain(
		['Access-Control-Allow-Origin'] => 'http://news.abc.com:8000'
);
posted @ 2025-04-28 19:57  刘俊涛的博客  阅读(93)  评论(0)    收藏  举报