2026-02-24 17:57:25 +08:00
|
|
|
<?php
|
|
|
|
|
|
2026-02-24 18:28:23 +08:00
|
|
|
namespace app\middleware;
|
2026-02-24 17:57:25 +08:00
|
|
|
|
|
|
|
|
use Webman\Http\Request;
|
|
|
|
|
use Webman\Http\Response;
|
|
|
|
|
|
|
|
|
|
class CorsMiddleware
|
|
|
|
|
{
|
|
|
|
|
public function process(Request $request, callable $handler): Response
|
|
|
|
|
{
|
|
|
|
|
// 处理 OPTIONS 预检请求
|
|
|
|
|
if ($request->method() === 'OPTIONS') {
|
|
|
|
|
$response = response('');
|
|
|
|
|
} else {
|
|
|
|
|
$response = $handler($request);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 添加 CORS 头
|
|
|
|
|
$response->withHeader('Access-Control-Allow-Origin', '*')
|
|
|
|
|
->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
|
|
|
|
|
->withHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization')
|
|
|
|
|
->withHeader('Access-Control-Max-Age', '86400');
|
|
|
|
|
|
|
|
|
|
return $response;
|
|
|
|
|
}
|
|
|
|
|
}
|