模板 自定义view文件夹 中间件 路由和路由函数 自定义多个route文件 session无效 自定义多个公共函数 中间件别名和数据库连接 伪静态 自定义类库extends 以年月日+编号拼接id,且编号每天从0开始 跨域 宝塔面板新建网站403 网页包含过多重定向 缓存 路由绑定子域名 方法参数错误 php导出excel时身份证变成科学技术法 获取路由参数 生成二维码phpqrcode 使用腾讯OCR(扫描) thinkphp6微信支付回调不访问 查询构造器 导入导出excel:安装使用 导入导出Excel:按日期导出 tp6腾讯云短信 thinkphp unserialize(): Error chinese-calendar 将base64保存到本地

跨域

首页 > PHP > Thinkphp6 更新日期:2021-06-05 04:31:48

传参就会跨域。

laravel想解决跨域问题,需要动好几个页面。

thinkPHP6就简单多了。

针对某个域名,取消单个路由的跨域限制

Route::get('/xxx/xxx/:id', 'xxxx')
->allowCrossDomain([    
    'Access-Control-Allow-Origin'=> 'http://域名地址',    
    'Access-Control-Allow-Credentials'=> 'true'
]);

针对某个域名,取消某个组路由的跨域限制

Route::group('/h5', function(){    
    Route::get('/xxx/xxx/:id', 'xxxx');
})->prefix('app\Controller\H5\Api/')->allowCrossDomain([    
    'Access-Control-Allow-Origin'=> 'http://域名地址',    
    'Access-Control-Allow-Credentials'=> 'true'
]);

取消多个域名的跨域限制

Route::group('/h5', function(){    
    Route::get('/xxx/xxx/:id', 'xxxx');
})->prefix('app\Controller\H5\Api/')->allowCrossDomain([    
    'Access-Control-Allow-Origin'=> 'http://域名1',    
    'Access-Control-Allow-Credentials' => 'true'
]);

Route::group('/h5', function(){    
    Route::get('/xxx/xxx/:id', 'xxxx');
})->prefix('app\Controller\H5\Api/')->allowCrossDomain([    
    'Access-Control-Allow-Origin' => 'http://域名2',    
    'Access-Control-Allow-Credentials'=> 'true'
]);

allowCrossDomain()也可以不传数组直接使用,这样就不是针对某个域名了,而是全局解除限制。


标题导航