如何在ThinkPHP5中启用CORS?
时间: 2024-11-29 20:39:34 浏览: 13
在ThinkPHP5中启用CORS,通常涉及以下几个步骤:
1. **在控制器里添加响应头**:
在需要提供跨域服务的控制器方法内,使用`response()`方法设置CORS相关的HTTP响应头,例如:
```php
use Think\Think;
public function index()
{
header("Access-Control-Allow-Origin: *"); // 允许来自任何源访问
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");
header("Access-Control-Allow-Headers: Content-Type,X-Requested-With");
$data = ...; // 获取数据
return response($data);
}
```
2. **全局配置**:
如果你想在整个应用中启用CORS,可以在`App\Http\Bootstrap.php`或`conf.php`的`app.php`部分设置:
```php
'response' => [
'header' => [
'Access-Control-Allow-Origin' => '*', // 全局允许跨域
// ... 添加其他允许的方法和头字段
],
],
```
3. **使用中间件(Middleware)**:
可以编写一个中间件来统一处理跨域,这样就无需在每个控制器方法中都手动设置。中间件可以在`app/middleware/CorsMiddleware.php`创建,并在`config/router.php`中注册。
以上设置完成后,你应该能通过跨域请求到你的ThinkPHP5 API了。
阅读全文