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

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

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


当前回答

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

添加这一行作为启动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访问您的项目。

其他回答

创建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

您可以使用以下命令访问您的ip。

ng serve --host 0.0.0.0 --disable-host-check

如果你正在使用npm,并且想要避免每次都运行这个命令,我们可以在包中添加下面的行。Json文件在脚本部分。

"scripts": {
    ...
    "start": "ng serve --host 0.0.0.0 --disable-host-check"
    ...
}

然后,您可以使用以下命令运行您的应用程序,以便从同一网络中的其他系统访问。

npm start

使用ng serve——host 0.0.0.0将允许您使用您的ip而不是localhost连接到ng serve。

EDIT

在较新的cli版本中,您必须提供本地ip地址

编辑2

在cli的新版本中(我认为是v5或更高版本),您可以再次使用0.0.0.0作为ip,为网络上的任何人托管它。

顺便提一下 确保您的连接在操作系统设置中设置为Public。

问题出在防火墙上。如果您在Windows上,请确保允许节点通过

ng serve --open --host 0.0.0.0 --disable-host-check

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