在我的工作中,我们需要使用Pulse VPN连接到内部网站。当我连接时,它破坏了我的角位。
我注意到它也破坏了所有外部网站,但是可以通过关闭Internet Options > Connections > LAN Settings > Use a proxy server for your LAN
来解决。每次VPN连接时都会启用此设置。禁用它可以允许内部和外部网站进行连接,但是有些方式阻止了我的localhost:4200角度网站。
当我尝试连接时,会显示Chrome的This site can't be reached (localhost took too long to respond)
页面以及对Check the proxy and firewall
的建议。 Windows网络诊断说:The remote device or resource won't accept the connection
我尝试过的其他事情:
ng serve -o --host 0.0.0.0
运行ipconfig
,获取IPv4地址。转到$ IPv4Address:4200。这可行!客户端角度站点负载。但
请求收到错误:Access to XMLHttpRequest at 'http://localhost/API_ROUTE' from origin 'http://LOCAL_IP:4200' has been blocked by CORS policy
。如果我直接在浏览器中转到localhost API路由,则可以正常加载。答案 0 :(得分:0)
@Josh在评论中说,本地主机路由会被VPN搞砸。对我来说,我的角度网站无法在localhost:4200
上运行,但是我的API在localhost:80
上。
要解决此问题,我找到了机器的IP,并直接访问了它。在Windows上,在cmd终端中运行ipconfig
,然后将IPv4 Address
复制到浏览器中:$IPv4Address:4200
。 Angular网站已加载!
不幸的是,我的本地服务器的CORS设置未配置为接受来自此主机字符串的连接。我正在使用C#,并编辑了WebApiConfig.cs
文件,如下所示:
var origins = LOAD_ORIGINS_STRING();
origins += ",http://$IPv4Address:4200";
var cors = new EnableCorsAttribute(origins, "*", "*");
然后,我重新启动(IIS)服务器以应用新设置。确保新来源的端口号后面没有/
或其他文本。然后它起作用了!它可能无法解决根本问题,但对我来说是一个可靠的解决方法。