【问题标题】:Web api project on one port and Front end一个端口和前端的 Web api 项目
【发布时间】:2017-11-24 19:57:56
【问题描述】:

我在 1 个 Visual Studio 解决方案中有 2 个项目 - 前端(HTML、CSS 和 JS)和 Web API。它们在单独的端口上运行 - 37056 上的 FE 和 6596 上的 API。在针对 wep 的 JS 文件中api 控制器 - 例如http://localhost:6596/api/Contacts/GetContacts,并在 HTML 页面上呈现来自 Wep API 的响应。到目前为止一切顺利..

问题来了 - 在 HTML 中,URL 显示为 http://localhost:37056/about.html,因此如果我想指向 Web API 返回的某些特定资源,这是不可能的。如果我输入例如 http://localhost:37056/api/Contacts/GetContacts会有错误的请求。

我怎样才能绕过这个 - 我在前端有一篇博客文章,其中包含来自 WEB api + 数据库的数据。我想给用户机会 http://localhost:37056/api/Blog/Page=1 目前只有当他/她在前端导航到名为博客的页面,然后单击特定的帖子,浏览器中的URL不会改变。它将是http://localhost:37056/api/Blog,没有页码等等(JS正在发出请求)。

提前致谢!

【问题讨论】:

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


    【解决方案1】:

    您将前端 URL (http://localhost:37056) 与后端资源 (api/Contacts/GetContacts) 连接起来。

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

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

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

    【讨论】:

      【解决方案2】:

      你能在 html 中使用绝对 uri 代替相对 uri 吗?

      【讨论】:

        猜你喜欢
        • 2020-11-01
        • 2020-11-29
        • 2015-08-01
        • 1970-01-01
        • 2013-09-20
        • 2016-11-01
        • 2012-12-07
        • 1970-01-01
        • 2018-09-21
        相关资源
        最近更新 更多