避免Angular2和PHPcross-domain在同一台电脑上通信
Avoid Angular 2 and PHP cross-domain communication in the same computer
我正在开发一个网络应用程序,我使用 Angunlar 2 作为我的前端框架,使用 CodeIgniter 3 作为我的后端框架。我使用 Angular-CLI,所以我的 Angular 应用程序在端口 4200 上运行,而我的 "server-side" 在端口 80 上运行。
因此,当我尝试执行从 Angular 到 PHP 的 post 请求时,我正在发出 cross-domain 请求,因为端口不同。我在 Chrome 的网络选项卡中检查了它,我看到完成了两个请求(一个用于选项,一个用于 post 本身)。
我遇到的问题是我无法接收 post body(我已将 Content-Lenght 更改为 header 并且总是在运行时)。
我配置的header是:
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');
问题是:有没有办法避免这里的cross-domain?当然,我尝试在 80 端口启动服务,但它很忙。如果没有办法避免 cross-domain,有人可以告诉我如何继续使用它吗?
谢谢
你可以 运行 "google-chrome --disable-web-security --user-data-dir" 或使用这个插件 https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi ,因为服务器端设置不够,你还需要发送修改后的 api 调用。
我正在开发一个网络应用程序,我使用 Angunlar 2 作为我的前端框架,使用 CodeIgniter 3 作为我的后端框架。我使用 Angular-CLI,所以我的 Angular 应用程序在端口 4200 上运行,而我的 "server-side" 在端口 80 上运行。
因此,当我尝试执行从 Angular 到 PHP 的 post 请求时,我正在发出 cross-domain 请求,因为端口不同。我在 Chrome 的网络选项卡中检查了它,我看到完成了两个请求(一个用于选项,一个用于 post 本身)。
我遇到的问题是我无法接收 post body(我已将 Content-Lenght 更改为 header 并且总是在运行时)。
我配置的header是:
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');
问题是:有没有办法避免这里的cross-domain?当然,我尝试在 80 端口启动服务,但它很忙。如果没有办法避免 cross-domain,有人可以告诉我如何继续使用它吗?
谢谢
你可以 运行 "google-chrome --disable-web-security --user-data-dir" 或使用这个插件 https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi ,因为服务器端设置不够,你还需要发送修改后的 api 调用。