CorsMiddleware.php 1011 B

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Middleware;
  4. use Hyperf\Context\Context;
  5. use Psr\Http\Message\ResponseInterface;
  6. use Psr\Http\Message\ServerRequestInterface;
  7. use Psr\Http\Server\MiddlewareInterface;
  8. use Psr\Http\Server\RequestHandlerInterface;
  9. class CorsMiddleware implements MiddlewareInterface
  10. {
  11. public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
  12. {
  13. $response = Context::get(ResponseInterface::class);
  14. $response = $response
  15. ->withHeader('Access-Control-Allow-Origin', '*')
  16. ->withHeader('Access-Control-Allow-Credentials', 'true')
  17. // Headers 可以根据实际情况进行改写。
  18. ->withHeader('Access-Control-Allow-Headers', '*');
  19. Context::set(ResponseInterface::class, $response);
  20. if ($request->getMethod() == 'OPTIONS') {
  21. return $response;
  22. }
  23. // var_dump($request);
  24. return $handler->handle($request);
  25. }
  26. }