Laravel 子域的 CORS API

Laravel CORS for subdomain API

我正在使用 Laravel 服务 GraphQL API,使用 Lighthouse。当我在主域中使用 grapqhl 作为 URI 时,一切正常,但是当我在子域中使用它时,例如。 grapql.app.test 我收到下一个错误:

Access to fetch at 'http://graphql.app.test/' from origin 'http://app.test' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin'

我的config\cors:

'paths' => ['api/*','graphql'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => false,

我该如何解决这个问题?

我正在使用 laravel 8。

如果有人遇到此问题,您需要添加您将使用的路径。在我的例子中是 / 因为我的 API 在 grapql.app.test.

结果代码:

'paths' => ['api/*','graphql','/'],
'allowed_methods' => ['*'],
'allowed_origins' => ['http://app.test'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => false,

如果有人使用 Laravel 8+ 遇到此问题,请确保 API URL 在客户端请求中不以斜线结尾,即代替 https://someapi/endpoint/ 应该是 https:///someapi/endpoint