File size: 1,193 Bytes
8baf129 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?php
namespace App\Http\Middleware;
use Closure;
class CorsMiddleware
{
public function handle($request, Closure $next)
{
$response = $next($request);
// Kiểm tra kiểu response, sau đó set header tương ứng
if (method_exists($response, 'header')) {
// Response Laravel (Illuminate)
$response->header('Access-Control-Allow-Origin', '*');
$response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
$response->header('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With, Range');
} else {
// Response Symfony (BinaryFileResponse)
$response->headers->set('Access-Control-Allow-Origin', '*');
$response->headers->set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
$response->headers->set('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With, Range');
}
// Nếu là preflight request (OPTIONS)
if ($request->getMethod() === "OPTIONS") {
$response->setStatusCode(200);
}
return $response;
}
}
|