连接到VPN后{无法访问Angular 7网站

时间:2019-08-08 17:53:59

标签: angular proxy windows-10 vpn lan

在我的工作中,我们需要使用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运行
  • 硬刷新,清除缓存,清空本地主机应用程序数据
  • 使用任务管理器强制退出Chrome并重新启动应用程序
  • 在cmd中运行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路由,则可以正常加载。

1 个答案:

答案 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)服务器以应用新设置。确保新来源的端口号后面没有/或其他文本。然后它起作用了!它可能无法解决根本问题,但对我来说是一个可靠的解决方法。