From e31a66686fe72993f45e29f6f3c225012d1b9ae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Tue, 8 Jun 2021 13:47:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HttpServer/Route/Router.php | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/HttpServer/Route/Router.php b/HttpServer/Route/Router.php index cba0f5cc..bc7c5496 100644 --- a/HttpServer/Route/Router.php +++ b/HttpServer/Route/Router.php @@ -7,7 +7,9 @@ use Closure; use Exception; use HttpServer\Abstracts\HttpService; use HttpServer\Controller; +use HttpServer\Http\Context; use HttpServer\Http\Request; +use HttpServer\Http\Response; use HttpServer\IInterface\Middleware; use HttpServer\IInterface\RouterInterface; use JetBrains\PhpStorm\Pure; @@ -490,7 +492,7 @@ class Router extends HttpService implements RouterInterface { $node = $this->find_path(\request()); if (!($node instanceof Node)) { - return send('[' . \request()->getMethod() . ':' . \request()->getUri() . ']' . self::NOT_FOUND); + return send($this->notFundCore()); } send(($response = $node->dispatch()), 200); if (!$node->hasAfter()) { @@ -500,6 +502,26 @@ class Router extends HttpService implements RouterInterface } + /** + * @return string + * @throws Exception + */ + private function notFundCore(): string + { + /** @var Response $response */ + $response = \response(); + + /** @var Request $request */ + $request = Context::getContext('request'); + + $response->addHeader('Access-Control-Allow-Origin', '*'); + $response->addHeader('Access-Control-Allow-Headers', $request->headers->get('access-control-request-headers')); + $response->addHeader('Access-Control-Request-Method', $request->headers->get('access-control-request-method')); + + return '[' . \request()->getMethod() . ':' . \request()->getUri() . ']' . self::NOT_FOUND; + } + + /** * @param $exception * @return mixed