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 问题的主要内容,如果未能解决你的问题,请参考以下文章

Angular IO 与 Laravel Lumen PHP API CORS 问题

Laravel CORS 与水果蛋糕

Laravel 5.4 + jQuery CORS 请求

API 验证 laravel 5.7

Laravel api路线与邮递员不工作

Laravel API CORS