You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.2 KiB
38 lines
1.2 KiB
<?php |
|
|
|
namespace App\Http\Middleware; |
|
|
|
use Closure; |
|
use Illuminate\Http\Request; |
|
|
|
class CorsMiddleware |
|
{ |
|
/** |
|
* Handle an incoming request. |
|
* |
|
* @param \Illuminate\Http\Request $request |
|
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next |
|
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse |
|
*/ |
|
public function handle(Request $request, Closure $next) |
|
{ |
|
$headers = [ |
|
'Access-Control-Allow-Origin' => '*', |
|
'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE', |
|
'Access-Control-Allow-Credentials' => 'true', |
|
'Access-Control-Max-Age' => '86400', |
|
'Access-Control-Allow-Headers' => 'Content-Type, Accept, Authorization, X-Requested-With, Application' |
|
]; |
|
|
|
if ($request->isMethod('OPTIONS')) { |
|
return response()->json('{"method":"OPTIONS"}', 200, $headers); |
|
} |
|
|
|
$response = $next($request); |
|
foreach ($headers as $key => $value) { |
|
$response->headers->set($key, $value); |
|
} |
|
|
|
return $response; |
|
} |
|
}
|
|
|