【问题标题】:Godaddy CORS issue - Angular 7 - Laravel 5Godaddy CORS 问题 - Angular 7 - Laravel 5
【发布时间】:2019-02-12 18:59:40
【问题描述】:

我在 Angular 7 中开发了应用程序,并在 Laravel 5.7 中开发了 API。

对于 CORS 问题,我还在 Laravel 中安装了 barryvdh/laravel-cors 包,它在本地运行良好。

但是当我在 Godaddy 单一主机上部署这两个应用程序时,即 Starter Linux Hosting with cPanel

  1. 主目录中的 Angular 应用程序 public_html
  2. 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


【解决方案1】:

预检请求不允许重定向

由于您有一个 HTTP 到 HTTPS 重定向,并且您的 API 调用正在尝试访问 http://api.example.com/api/documentations?page=1,它们将会失败,因为(如消息所述)您无法重定向 CORS 预检。

更新您的代码以通过 HTTPS 进行 API 调用。

【讨论】:

  • @ceejaoz 我的服务器上没有 SSL 证书,无法通过 HTTPS 调用 API。有没有其他选择?
  • 当然,如果您的 API 没有 HTTPS,请停止将其重定向到 HTTPS。
【解决方案2】:

感谢 @ceejayoz 提供宝贵的 cmets 和回答。我能找到问题

我有两个 .htaccess 文件。对于主域,一个在

public_html/.htaccess

另一个用于子域

public_html/api/public/.htaccess

public_html/.htaccess中的那个有这一行来保护public_html/api目录中的文件免受主域的root访问

RedirectMatch 403 ^/api/.*$

当我评论/删除这一行时,API 开始工作,但 public_html/api 目录中的文件不安全。

然后为了保护文件,我在 public_html/api/.htaccess 处创建了一个文件并添加了这些行

RewriteEngine On
RewriteRule !^public/ - [F,NC]

我实现了这两点:API 正常工作,public_html/api 中的文件受到保护。

【讨论】:

    猜你喜欢
    • 2015-11-28
    • 2019-02-05
    • 2017-02-13
    • 2017-05-07
    • 2018-07-10
    • 2020-10-20
    • 2019-09-16
    • 2017-05-09
    • 1970-01-01
    相关资源
    最近更新 更多