一个端口和前端的Web api项目

时间:2017-06-21 18:55:33

标签: javascript c# html asp.net .net

我在1个可视化工作室解决方案中有2个项目 - 前端(HTML,CSS和JS)和Web API。它们在分离的端口上运行 - 37056上的FE和6596上的API。在JS文件中我的目标是wep api控制器 - 例如http://localhost:6596/api/Contacts/GetContacts,以及在HTML页面上呈现来自Wep API的响应。太好了..

问题就出现了 - 在HTML中提供了URL http://localhost:37056/about.html,所以如果我想要指向Web API返回的某些特定资源,这是不可能的。如果我输入例如{ {3}}会有错误的请求。

我怎么能绕过这个 - 我在前端有一篇博文,里面有来自WEB api + database的数据。我想让用户有机会http://localhost:37056/api/Contacts/GetContacts此刻这是唯一可能的如果他/她导航到前端名为Blog的页面并单击特定的帖子,浏览器中的URL将不会更改。如果没有页码等,它将是http://localhost:37056/api/Blog/Page=1等等(JS正在发出请求)

提前致谢!

2 个答案:

答案 0 :(得分:0)

你可以在html中使用绝对uri而不是相对Uri吗?

答案 1 :(得分:0)

您将FrontEnd URL(http://localhost:37056)与BackEnd资源(api / Contacts / GetContacts)连接在一起。

有两种方法可以解决这个问题:

  • 从指向后端资源的BackEnd绝对URL(而不是相对)返回。这应该是可行的,因为后端“知道”它自己的URL。
  • 从后端存储FrontEnd基本URL,并将其连接到返回的相对路径。

我建议使用第一个选项,因为如果将某些资源移动到新位置(例如,存储在第三方服务器中的外部资源),则根本不需要更新前端。