【发布时间】: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.test向http://graphql.app.test/api发出ajax 请求,您会得到什么? -
@JonathanMartins 我得到同样的错误
-
@JonathanMartins 好的,解决方案是添加
'\'到paths和'*'到allowed_origins。如果我使用这个'allowed_origins' => ['http://app.test'],也可以。谢谢!
标签: laravel graphql cors laravel-lighthouse laravel-8