Laravel + Angular 从外部网络访问被 CORS 阻止

Posted

技术标签:

【中文标题】Laravel + Angular 从外部网络访问被 CORS 阻止【英文标题】:Laravel + Angular accessing from outside network blocked by CORS 【发布时间】:2021-07-29 21:03:43 【问题描述】:

我在这个主题上看到的所有问题都在本地网络上,但我还没有看到任何可以回答网络连接之外的问题。

我有一个 laravel 后端和一个 Angular(和离子)前端。如果我将它们托管在 192.168.x.x:XXXX 上并且我从我的网络中访问它们,一切都很好,它们可以完美地完成所有 HTTP 请求并且没有 CORS 错误。

当我尝试从网络外部访问使用应用程序时,问题就出现了。我已经设置了从外部访问应用程序所需的端口转发,所以如果我从网络外部的任何浏览器访问 xxxx(我的公共 IP):XXXX(其运行的端口)我可以访问应用程序,两者后端和前端。

但是,如果我在应用程序中尝试任何操作,例如登录,(请记住,我在这些方法中将请求 IP 更改为适当的公共 IP)我得到一个 CORS 错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://(My public IP)/_connect_hashaudit_/frame/public/test?hash=6918596600873537056&id=34686533401. (Reason: CORS request did not succeed).

这些是我在 laravel 应用中的 CORS 设置:

'paths' => ['*'], //Set to all to avoid CORS errors when accessing the server during development

'allowed_methods' => ['*'],

'allowed_origins' => ['*'],

'allowed_origins_patterns' => ['*'],

'allowed_headers' => ['*'],

'exposed_headers' => ['*'],

'max_age' => 0,

'supports_credentials' => false,

我在 XAMPP Apache 上运行它们

我了解这些服务器仅用于开发用途,但我希望我可以远程演示这些应用程序。我不会让这些服务器继续运行。有什么办法可以解决这个问题,或者在其他东西上运行这些服务器来解决这个问题?

【问题讨论】:

Refer to this, seems similar kind of issue 见developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/…。 “CORS 请求未成功” 消息实际上表明问题的原因不是 CORS 问题,而是一些更严重的故障 - 而 CORS 错误只是其他问题的副作用。所以你需要做一些进一步的故障排除来弄清楚实际的问题是什么。但问题不在于 Laravel 应用程序中的 CORS 设置。而是有一些网络问题或什么的。 【参考方案1】:

正如@sideshowbaker 提到的,CORS 错误只是另一个错误的症状。事实证明,XAMPP 不允许你这样做,除非你在管理员模式下运行它

【讨论】:

以上是关于Laravel + Angular 从外部网络访问被 CORS 阻止的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Angular JS 从外部范围访问数组值

角/Laravel CORS

Angular 和 Laravel CORS 访问控制允许来源问题

从控制器调用外部 API 函数,LARAVEL 4

如何从 laravel 的网络浏览器访问上传的文件?

无法从外部网络访问 XAMPP Web 服务器