在VirtualBox中从IE访问在mac上运行的AngularJS应用程序

时间:2016-06-08 21:51:34

标签: angularjs localhost virtualbox

在我们的开发环境中,我们在开发模式下在Mac上运行Angular应用程序(grunt serve) 在Mac上的浏览器中,我们可以使用http://localhost:9000/

访问它

我们如何在VirtualBox上从IE访问它?

我们正在使用你的角度生成器Gruntfile.js

connect: {
  options: {
    port: 9000,
    // Change this to '0.0.0.0' to access the server from outside.
    hostname: 'localhost',
    livereload: 35729
  },

更新:

VirtualBox通过Windows和IE安装在同一台Mac上,我在那里服务"并开发Angular应用程序

我可以使用网址在VBox中从IE访问角度应用:http://10.0.2.2 但有些事情仍然无效

1)在“网络”面板中

request.Name: livereload.js?snipver=1 
request.Path: http://10.0.2.2:35729/
request.Protocol: pending
request.Status (Description): pending

2)在“网络”面板中,没有列出XHR请求

问题可能是应用程序正在使用通过VPN访问的另一台服务器上的REST端点?

解决:

问题不在于V-Box网络设置,而在于我在角度应用程序中检测localhost的方式(用于DEV目的)

我有:

var IS_LOCALHOST = (location.hostname.indexOf('localhost') > -1) 

我把它改成了

var IS_LOCALHOST = (location.hostname.indexOf('localhost') > -1) || (location.hostname.indexOf('10.0.2.2') > -1);

我用它来做像

这样的事情
var BASE_URL = IS_LOCALHOST ? 'http://dev.api.base.url' : 'http://' + location.hostname;

2 个答案:

答案 0 :(得分:0)

Virtualbox在哪里托管?我假设它正在运行某些版本的Windows,因为你问的是IE。

如果Virtualbox与Angular应用程序在同一主机(物理机器)上运行,则听起来您需要将VM设置为“仅主机”网络模式。 请参阅:https://superuser.com/questions/303906/virtualbox-make-host-and-guest-os-talk-between-each-other

在主机和来宾计算机之间建立联网后,您应该能够在Virtualbox中启动IE,并键入Mac的IP地址和端口(:9000)并连接。 确保Grunt Serve设置为在“localhost”之外提供服务。请参阅:Access node.js/grunt server through localhost:port on virtual machine

此外,请确保没有任何防火墙规则干扰Mac上端口9000的请求。

答案 1 :(得分:0)

您可以转到Windows操作系统的虚拟机网络适配器设置并桥接这两个连接。通过这种方式,您可以通过提供IP地址,mac端口来访问IE中的角度应用程序。 http://IP_OF_MAC:Port