【发布时间】:2017-12-01 23:02:27
【问题描述】:
我正在开发一个 web 应用程序,我使用 Angunlar 2 作为我的前端框架和 CodeIgniter 3 作为我的后端框架。我使用 Angular-CLI,所以我的 Angular 应用程序在端口 4200 上运行,而我的“服务器端”在端口 80 上运行。
所以,当我尝试从 Angular 向 PHP 发出 post 请求时,由于端口不同,我正在发出跨域请求。我在 Chrome 的网络选项卡中检查了它,我看到两个请求已完成(一个用于选项,一个用于帖子本身)。
我遇到的问题是我无法确定接收帖子正文(我已将 Content-Lenght 更改为标题中的内容,并且始终处于运行时状态)。
我配置的标头是:
header('Content-Type: text/plain; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header('Access-Control-Allow-Headers: Content-Type');
问题是:这里有没有办法避免跨域?自然,我尝试在 80 端口启动服务,但它很忙。如果没有办法避免跨域,有人可以告诉我如何继续处理这个问题吗?
谢谢
【问题讨论】:
-
我不得不提一下,我的 get 请求没有问题,我遇到的问题是 post 请求,问题是我在正文中没有收到任何内容(内容-lenght 为 2,我无法更改)
-
对于那些有同样问题的人,@Raiper34 写的解决方案是完美的。如果您仍然遇到问题,可能是因为 $_POST 数组未填充。解决方案在这里:stackoverflow.com/a/14794856/3368457
标签: php angular request cross-domain