我需要在 my.domain.com 上安装 Angular 生产应用程序,生产 html 和 javascript 就在其中。 我需要在与 my.domain.com ip 相同的服务器上调用 api。 123.123.123.123:8080,端口 8080。应用程序位于端口 80。 我想调用 get JSON posts (而不是 jsonp ),并且我面临 CORS 问题。 我可以在生产中放置任何代理,以便可以对我的域进行调用吗?这是带有 get 和 posts 的普通 api。我无法使用 grunt-connect-proxy,因为应用程序已经在生产中。 服务器在apache上。
最佳答案
只需使用反向代理即可使其工作 =)...在 apache (Linux) 上,在 CLI 中运行以下命令来安装 mod_proxy
:
apt-get install sudo apt-get install libapache2-mod-proxy-html
sudo a2enmod 代理
sudo a2enmod proxy_html
sudo a2enmod proxy_http
- 重新启动 apache,例如
服务apache2重新启动
下一步) 打开您的 VHOST 文件并输入反向代理配置,以将特定端点(在此为子目录)转发到在端口 8080
上运行的本地 API) 。该文件应位于 /etc/apache2/sites-enabled/your-site-name.conf
附近。不要忘记启用您的 VHOST 配置文件。
ProxyPass /api/ http://localhost:8080/
ProxyPassReverse /api/ http://localhost:8080/
重新启动你的apache,例如服务 apache2 再次重新启动
。
最后) 将 AngularJS 应用程序 API 端点配置为 http://yourdomain/api/你很好。
关于javascript - 代理转发同一主机上的不同端口以避免 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43047517/