diff --git a/app/Config/Filters.php b/app/Config/Filters.php index 3603abb..b29d82e 100755 --- a/app/Config/Filters.php +++ b/app/Config/Filters.php @@ -61,6 +61,7 @@ class Filters extends BaseFilters 'before' => [ 'forcehttps', // Force Global Secure Requests 'pagecache', // Web Page Caching + ], 'after' => [ 'pagecache', // Web Page Caching @@ -80,6 +81,7 @@ class Filters extends BaseFilters // 'honeypot', // 'csrf', // 'invalidchars', + 'cors' ], 'after' => [ // 'honeypot', diff --git a/app/Filters/Cors.php b/app/Filters/Cors.php index 039af1f..b5174d6 100644 --- a/app/Filters/Cors.php +++ b/app/Filters/Cors.php @@ -2,53 +2,24 @@ namespace App\Filters; -use CodeIgniter\Filters\FilterInterface; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; +use CodeIgniter\Filters\FilterInterface; class Cors implements FilterInterface { - /** - * Do whatever processing this filter needs to do. - * By default it should not return anything during - * normal execution. However, when an abnormal state - * is found, it should return an instance of - * CodeIgniter\HTTP\Response. If it does, script - * execution will end and that Response will be - * sent back to the client, allowing for error pages, - * redirects, etc. - * - * @param RequestInterface $request - * @param array|null $arguments - * - * @return RequestInterface|ResponseInterface|string|void - */ public function before(RequestInterface $request, $arguments = null) { - // Set CORS headers - header("Access-Control-Allow-Origin: *"); - header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE"); - header("Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With"); + header('Access-Control-Allow-Origin: *'); // or your domain + header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With'); + header('Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE'); - // Handle preflight requests - if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { - header("HTTP/1.1 200 OK"); - exit; + // Handle preflight OPTIONS request + if ($request->getMethod() === 'options') { + die(); } } - /** - * Allows After filters to inspect and modify the response - * object as needed. This method does not allow any way - * to stop execution of other after filters, short of - * throwing an Exception or Error. - * - * @param RequestInterface $request - * @param ResponseInterface $response - * @param array|null $arguments - * - * @return ResponseInterface|void - */ public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) { return $response;