我将我的 API(使用 Laravel 8 框架构建)托管在一个子域 - webapi.somedomain.com 中。我正在运行使用 React 框架和 Axios 库为 HTTP 请求构建的本地版本的前端 UI。我在共享主机空间 (cPanel + CentOS) 中进行了托管,我在访问托管 API 时遇到了问题。我已经说明了我在下面看到的错误:
Access to XMLHttpRequest at 'http://webapi.somedomain.com/api/authorization/signup' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
所以我添加了 Laravel 自定义 CORS 中间件;使用 . 更新文件并清除缓存php artisan config:cache
。没有成功。找不到其他资源。所以我添加了 Laravel CORS 包 - fruitcake/laravel-cors
. 已安装、发布并添加到中间件;更新文件并清除缓存。但是当我从我的 React 项目中访问 API 时,我仍然看到了 CORS 错误
配置/cors.php:
'paths' => ['api/*'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => false,
内核.php:
protected $middleware = [
...
\Fruitcake\Cors\HandleCors::class,
];
我只是 Laravel 的初学者。我究竟做错了什么?有人可以帮我吗?提前致谢。
PS:我完全理解 CORS 是什么以及它是如何工作的。我是 Laravel 的新手。对开发并不陌生。我想知道我还应该做什么,以及我是否遗漏了什么。