javascript - 如何使用 Aurelia + .Net Core + IIS Web 应用程序获取正确的 url

标签 javascript asp.net iis asp.net-core-mvc aurelia

我有一个在 Asp MVC Core 1.0 下运行的 Aurelia 应用程序。该应用程序使用 HttpClient 调用 Controller 操作,该操作返回 json 数据。 Home Controller 包含所有操作,我像这样配置 HttpClient:

http.configure(config => {
        config
          .useStandardConfiguration()
          .withBaseUrl('Home/');
});

在 Visual Studio 中运行应用程序时,一切正常。它托管在 localhost:55475 ,当我调用this.http.fetch('GetData')时,它向 localhost:55475/Home/GetData 发出请求.

当我部署到 IIS 时,问题就出现了。该应用程序作为 Web 应用程序部署在默认网站下,因此根 url 为 server.org/MyApp 。应用程序启动正常,但是当我调用 this.http.fetch('GetData') 时,它从 server.org/Home/GetData 请求而不是server.org/MyApp/Home/GetData ,这显然会导致 404。

为什么我的提取请求被忽略 MyApp ?我认为我的 .withBaseUrl 上没有前导斜杠会使网址相对,但显然不是?

最佳答案

我找到的解决方案是我在浏览器地址栏中输入的 URL...在您的情况下,如果您浏览到 server.org/MyApp/而不是 server.org/MyApp (注意额外的斜杠)?这对我有用。

所以我需要实现的整体修复是有一个 base托管 Aurelia 的页面顶部的元素,使用尾部斜杠设置基本 URL,例如

<base href="/MyApp/" />

我使用 ASP.Net Core 在我的 index.cshtml 文件中添加了这一行:

<base href="@this.Url.Content("~")/" />

或者您可以使用 302 响应将您的用户重定向到完整的 URL。

关于javascript - 如何使用 Aurelia + .Net Core + IIS Web 应用程序获取正确的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39737078/

相关文章:

javascript - 多语言网站布局调整

javascript - 如何将模型值传递给 ember.js 中的新路由

javascript - jqGrid - 搜索本地数组数据

c# - UserManager 不断抛出 System.ArgumentNullException

javascript - 将事件绑定(bind)到 jQuery Modal Pop Up 中动态添加的元素

c# - .NET Core 2.0 MVC odd 404 on controller methods only when deployed to IIS

apache(端口80)和iis(端口8080)

c# - ASP.net 在一个 ashx 文件中处理自定义文件扩展名的所有请求

javascript - 使用 html5 本地存储显示值

asp.net - 面板内的部分边框