如何允许在Angular2中访问本地主机之外的对象?我可以在localhost:3030/panel轻松导航,但当我写我的IP如10.123.14.12:3030/panel/时,我无法导航。

您能告诉我怎么修吗?我没有使用npm(节点项目管理-节点安装/节点启动)来安装和运行项目。

如果你需要,我可以提供我的包裹。Json和index.html。


当前回答

使用ng serve——host 0.0.0.0命令解决了我的问题。使用192.168.x。X:5200才能从另一台机器上访问应用程序。

此外,检查客户端和服务器上的防火墙规则(暂时禁用防火墙或创建允许流量的规则)

其他回答

一个可能会帮助到某人的快速解决方案:

添加这一行作为启动ng serve——host 0.0.0.0——disable-host-check的值 在package.json中

ex:

{
"ng": "ng",
"start": "ng serve --host 0.0.0.0 --disable-host-check",
"build": "ng build",
}

然后简单地执行start或npm run start

您将能够从其他本地ip访问您的项目。

对我来说,它使用“ng serve -open -host 0.0.0.0”,但有一个警告


警告:这是一个简单的服务器,用于测试或调试Angular应用程序 本地。它还没有被审查安全问题。

将此服务器绑定到打开的连接可能会损害您的应用程序或 电脑。使用不同于传递给"——host"标志的主机可能会导致 Websocket连接问题。你可能需要使用"——disableHostCheck"如果那是 的情况。

创建proxy.conf.json并粘贴此配置

{  
"/api/*":
    {    
        "target": "http://localhost:7070/your api project name/",
        "secure": false,
        "pathRewrite": {"^/api" : ""}
    }
}

替换:

let url = 'api/'+ your path;

在CLI下运行:

ng serve  --host port.number —-proxy-config proxy.conf.json
ng serve --open --host 0.0.0.0 --disable-host-check

这对我来说非常有效(甚至使用一个a主机指向该IP的公共IP)。

你也可以使用ngrok自省所有在隧道上运行的HTTP流量 ,然后你可以使用ngrok HTTP——host-header=rewrite 4200来公开