CorsMiddleware.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Response;
  5. class CorsMiddleware
  6. {
  7. /**
  8. * Handle an incoming request.
  9. *
  10. * @param \Illuminate\Http\Request $request
  11. * @param \Closure $next
  12. * @return mixed
  13. */
  14. public function handle($request, Closure $next)
  15. {
  16. $response = $next($request);
  17. $IlluminateResponse = 'Illuminate\Http\Response';
  18. $SymfonyResopnse = 'Symfony\Component\HttpFoundation\Response';
  19. $headers = [
  20. 'Access-Control-Allow-Origin' => '*',
  21. 'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, PATCH, DELETE',
  22. 'Access-Control-Allow-Headers' => 'Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Authorization , Access-Control-Request-Headers, X-CSRF-TOKEN',
  23. 'Content-Security-Policy' => 'upgrade-insecure-requests'
  24. ];
  25. if ($response instanceof $IlluminateResponse) {
  26. foreach ($headers as $key => $value) {
  27. $response->header($key, $value);
  28. }
  29. return $response;
  30. }
  31. if ($response instanceof $SymfonyResopnse) {
  32. foreach ($headers as $key => $value) {
  33. $response->headers->set($key, $value);
  34. }
  35. return $response;
  36. }
  37. return $response;
  38. }
  39. }