【发布时间】:2019-02-12 18:59:40
【问题描述】:
我在 Angular 7 中开发了应用程序,并在 Laravel 5.7 中开发了 API。
对于 CORS 问题,我还在 Laravel 中安装了 barryvdh/laravel-cors 包,它在本地运行良好。
但是当我在 Godaddy 单一主机上部署这两个应用程序时,即 Starter Linux Hosting with cPanel
- 主目录中的 Angular 应用程序 public_html
- public_html/api 目录中的 Laravel API 指向 public_html/api/public
API 不工作,我看到了这个错误
Access to XMLHttpRequest at 'http://api.example.com/api/documentations?page=1' from origin 'http://example.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request
我在 stackoverflow 和其他来源上看到了很多答案,但似乎没有什么对我有用。
我尝试将标题添加到 .htaccess 文件
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
以及直接到 index.php 但没有运气。
header('Access-Control-Allow-Origin', '*')
非常感谢任何想法或帮助。提前致谢。
【问题讨论】:
-
您有 HTTP 到 HTTPS 的重定向吗?如果是这样,您需要将 API 调用指向 HTTPS 版本。
-
我有 http 重定向
-
好的,如消息所述,CORS 请求不能像那样重定向。您的 API 调用应该开始使用 HTTPS 而不是依赖重定向。
-
我正在疯狂地尝试解决您遇到的同样问题。有什么方法可以提供有关已执行修复的代码?所以,我没有调用https。所以,我没有这种情况,但同样的错误。
-
如果你能提供你是如何离开 config/cors.php 文件的,我会试着得到一个更好的主意。我什么都试过了!
标签: php angular laravel apache