角度应用程序正在获得访问权限,但从另一个系统调用时未访问 webapi,但在服务器内尝试工作。为啥?

Posted

技术标签:

【中文标题】角度应用程序正在获得访问权限,但从另一个系统调用时未访问 webapi,但在服务器内尝试工作。为啥?【英文标题】:The angular app is getting access but webapi is not getting accessed when called from another system but works tried within the server. Why?角度应用程序正在获得访问权限,但从另一个系统调用时未访问 webapi,但在服务器内尝试工作。为什么? 【发布时间】:2021-10-10 19:55:29 【问题描述】:

今天我在一个问题上花了大约 10 个小时,但没有得到解决。我对 Angular、webapi 和部署等非常陌生。

如果可以,请帮助我。

看。

我在 IIS 上部署了一台服务器

    一个 Web API 项目(端口:81) 一个角度应用程序(端口:80)

当我尝试使用 IP 地址和端口号在浏览器中访问 Angular 应用程序时,它会在服务器内工作并在需要时调用 Web API 方法。很好。

但是,当我尝试从位于同一网络中的电脑访问 Angular 应用程序时,该应用程序会被访问,但未检索到 webAPI,并在 Chrome 的“网络”选项卡和控制台中返回错误。

Error: Uncaught (in promise): C: "headers":"normalizedNames":,"lazyUpdate":null,"headers":,"status":0,"statusText":"Unknown Error","url":"http://xxx.xxx.xxx.xxx:81/api/Types/TopType","ok":false,"name":"HttpErrorResponse","message":"Http failure response for http://xxx.xxx.xxx.xxx:81 0 Unknown Error","error":"isTrusted":true

Angular 应用程序允许使用标题、来源和所有内容。 (*)

另外,我尝试使用浏览器 ipaddress:81 从我的电脑访问 Web API,然后它返回“响应时间太长”消息,因此无法访问。

但我认为我的 PC 不需要访问 API,因为我正在调用 Angular 应用程序,而它又在服务器中调用 API 但不确定。

在服务器上,在 Angular 应用程序的 env.js 中,我使用 IP 地址和端口而不是 localhost:81 提供 API 的 URL。

此外,将 Angular 应用程序保留在端口 80 上的原因是,当我为其分配其他端口时,它会停止访问。

【问题讨论】:

Web.Api 是项目还是.NET 项目? 是的。协调 【参考方案1】:

@Afaaqa 你能不能试着把这些放在 Program.cs 中的 CreateHostBuilder 方法中

builder.UseUrls("[https or http]://*:[your port number]");

替换时也删除 []

【讨论】:

@Afaaqa 添加此行后,您必须使用这样的网址 [https 或 http]://YOUR_IP_V4:PORT_NUMBER 并检查您的系统防火墙是否可能阻止请求。

以上是关于角度应用程序正在获得访问权限,但从另一个系统调用时未访问 webapi,但在服务器内尝试工作。为啥?的主要内容,如果未能解决你的问题,请参考以下文章

代码正在执行,但从函数调用时视图未加载?

从另一个角度组件保存相关数据时刷新角度组件

从另一个 reducer 中访问一个 reducer 状态

闲话Linux系统安全——自主访问控制(DAC)

发布 Apple 应用时,第三方能否在发布前获得访问权限?

无法将JSON数据访问到角度(.ts)文件中