gpt4 book ai didi

laravel - 使用 Laravel Lighthouse 的 Laravel 7 中的 CORS 错误

转载 作者:行者123 更新时间:2023-12-04 14:45:15 24 4
gpt4 key购买 nike

我有一个用 Laravel 和 Lighthouse-php(用于 GraphQL)构建的 API。我的客户端使用 Vue js 构建,并使用 Apollo 进行 graphQL 客户端实现。每当我提出请求时,我都会收到以下错误:

Access to fetch at 'http://localhost:8000/graphql' from origin 'http://localhost:8080' 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. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

当然,我继续安装 laravel-cors 包,但后来我意识到它是我的 Laravel 安装(7.2.2)默认提供的。这意味着 \Fruitcake\Cors\HandleCors::class已添加到 Kernel.php 中的中间件数组中cors 配置文件已经在我的配置目录中。

经过一番谷歌搜索,我意识到我需要添加 \Fruitcake\Cors\HandleCors::classroute.middleware我的 config/lighthouse.php 中的数组文件

它仍然没有工作。我已经重新启动服务器,清除缓存,清除配置并运行 composer dump-autoload但我仍然收到错误消息。我不知道如何解决这个问题。任何帮助将不胜感激。

版本

Laravel 7.2.2

Laravel 灯塔 4.10

最佳答案

我从灯塔的人那里得到了一些帮助 here .问题出在我的 cors 配置上。我需要添加 graphql到 config/cors 中的路径数组,但我错误地添加了 graphql/* .所以路径数组看起来像这样

'paths' => ['api/*', 'graphql/*'],

而不是这个
'paths' => ['api/*', 'graphql'],

进行更改后,我运行以下命令: php artisan cache:clear , php artisan config:clearcomposer dump-autoload在 CORS 错误消失之前。

对我有用的完整配置是
return [
'paths' => ['api/*', 'graphql'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => false,
'max_age' => false,
'supports_credentials' => false,
];

关于laravel - 使用 Laravel Lighthouse 的 Laravel 7 中的 CORS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61050343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com