asp.net - 在同一个端口上运行 Angular 和 ASP.NET Web API
问题描述
我目前正在使用 Angular 向运行 ASP.NET 的 API 服务器发出 API 调用。但是,对于角度开发,我有一个跨域问题,我使用的是 localhost。在生产版本中,它们都将使用 IIS 在同一个域下运行。
有没有办法在与 ASP.NET 相同的端口上运行 Angular 应用程序?
PS:我也对解决此问题的其他替代方案持开放态度。
解决方案
我遇到了同样的问题,然后我在 medium 上找到了这篇文章,希望这对你有用。
编辑:实际上我使用的解决方案来自那篇文章。
这个想法是您不能在同一个端口上“发布”API 和 Angular 应用程序,但您可以使用代理从 Angular 应用程序连接到另一个端口上的 API。
更新:很抱歉很久以前没有回答这个问题。
要处理 cors 问题(在这种情况下),您可以使用带有ng serve
命令的代理。
例如,就我而言,我使用了proxy.conf.json
这样的文件:
{
"/api/*": {
"target": "http://localhost:3000",
"secure": false,
"pathRewrite": {"^/api" : ""}
}
}
此代码将每个请求的 url 重写到/api/*
您http://localhost:3000
的 api 正在侦听的位置。
因此,为了说明,如果您以角度提出请求http://localhost:4200/api/users
,它将被重定向/重写以http://localhost:3000/api/users
解决 cors 问题。
现在,您必须运行 Angular 应用程序的方式不同了。
ng serve --proxy-config proxy.conf.json
推荐阅读
- mysql - 在mysql中使用许多不同的表发出请求
- android - 暗/亮模式重新创建应用程序后,SwitchCompats 检查不正确
- amazon-web-services - 如何知道 ECS 计划任务的开始时间?
- html - 如何管理离子中的大量按钮?
- c - 为什么变量不存储值?
- android - Firebase 手机身份验证 - 应用验证(SafetyNet)
- cmd - OpenSSL HMCA SHA1 未给出预期结果
- html - 如何让 Bootstrap 在中心对齐一行,在底部对齐一行?
- apache-kafka - Akka Cluster 的分片数量是否应该始终等于 Kafka 分区的数量?
- python - 包含击键和鼠标指针的 Pyautogui 代码能否在 VM 内的后台运行?