【问题标题】:Laravel CORS for subdomain API用于子域 API 的 Laravel CORS
【发布时间】:2021-01-01 13:52:25
【问题描述】:

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

从源访问“http://graphql.app.test/”获取 “http://app.test”已被 CORS 策略阻止:响应 预检请求未通过访问控制检查:否 '访问控制允许来源'

我的config\cors

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

我该如何解决这个问题?

我正在使用 laravel 8。

【问题讨论】:

  • 我不知道为什么 * 对我不起作用。当我定义原点时,它在这里起作用。 'allowed_origins' => ['http://app.test'],。您尝试访问的路径是否在您定义的路径之一内?这个URI是roothttp://graphql.app.test/,当你尝试访问http://graphql.app.test/api时会发生什么?
  • @JonathanMartins 我的 API 在 http://graphql.app.test/ 中运行,我尝试在 http://app.test 中使用它。这是我得到CORS错误的地方。我尝试将http://app.test 添加到allowed_origins,但没有成功。
  • 如果您从http://app.testhttp://graphql.app.test/api 发出ajax 请求,您会得到什么?
  • @JonathanMartins 我得到同样的错误
  • @JonathanMartins 好的,解决方案是添加 '\'paths'*'allowed_origins。如果我使用这个'allowed_origins' => ['http://app.test'], 也可以。谢谢!

标签: laravel graphql cors laravel-lighthouse laravel-8


【解决方案1】:

如果有人对此有疑问,您需要添加您将使用的路径。在我的情况下是 /,因为我的 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,

【讨论】:

    猜你喜欢
    • 2014-08-05
    • 2018-01-13
    • 2021-11-17
    • 2020-06-30
    • 2018-12-03
    • 2018-08-10
    • 2017-04-22
    • 2016-01-09
    相关资源
    最近更新 更多