CRM/webman/app/middleware/CrossDomain.php
2025-03-17 13:10:11 +08:00

29 lines
1006 B
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\middleware;
use Webman\Http\Request;
use Webman\Http\Response;
use Webman\MiddlewareInterface;
class CrossDomain implements MiddlewareInterface
{
public function process(Request $request, callable $next): Response
{
// 动态允许请求来源支持携带Cookie
$origin = $request->header('origin', '*');
$response = $next($request);
// 设置跨域响应头
$response->withHeaders([
'Access-Control-Allow-Origin' => $origin,
'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers' => 'Content-Type, Authorization, X-Requested-With',
'Access-Control-Allow-Credentials' => 'true', // 允许携带Cookie
'Access-Control-Max-Age' => 86400, // 预检请求缓存时间(秒)
'Vary' => 'Origin' // 避免缓存干扰
]);
return $response;
}
}