Laravel 5.7 API 与 CORS 问题
Posted
技术标签:
【中文标题】Laravel 5.7 API 与 CORS 问题【英文标题】:Laravel 5.7 API with CORS issue 【发布时间】:2019-07-03 22:31:45 【问题描述】:我已经查看了Laravel 5.2 CORS, GET not working with preflight OPTIONS,这有助于诊断问题,但我仍然遇到问题。
确切的错误:
Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.
访问控制响应不再导致失败,但仍然失败。我将如何更新这个?
【问题讨论】:
如果路由定义不正确,通常会发生这种情况...您是否为要访问的特定动词定义了路由? 感谢您的帮助 - 错误已更改。预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 access-control-allow-origin。 看看here 看看是否能回答您的问题。 在您的帮助下解决了上一个错误后,我能够让它工作......谢谢! 我将发布我的第一条评论作为解决方案,如果您不介意,请将其标记为已解决。 ;) 【参考方案1】:如果路由定义不正确,通常会发生这种情况...检查以确保正确定义路由及其动词。
【讨论】:
嗯,这与路由定义不当无关。需要通过中间件将正确的标头发送回客户端浏览器。 没错,@vivek_23,如果正确定义了路由,中间件会为您处理这部分。 ;)【参考方案2】:我已经经历过几次这种情况,它给出了 CORS 错误,但如果我检查一下,它实际上存在于预检响应中的 Access-Control-Allow-Headers。 我注意到 Laravel 有时会返回该 CORS,因为该请求涉及的控制器/模型存在问题。我经历过 3 次,这就是 3 个原因:
在我没有将实际特征导入模型时在模型中使用特征 模型类定义中有错字,例如class Document implements Filee
而不是 File
我检查了 laravel.log,它有一个错误,我没有在某个模型类中实现一些抽象方法(这是今天,辛苦了好几个小时!!!)
我写这个,并附上例子,希望它能真正帮助到别人。这个问题很难解决,因为它只是给出了一个 CORS 错误,而没有太多关于问题背后的信息。
祝你好运。
【讨论】:
以上是关于Laravel 5.7 API 与 CORS 问题的主要内容,如果未能解决你的问题,请参考以下文章