javascript - 当站点不是其 URL 的根时,如何在 getJSON 调用中定位 API

标签 javascript asp.net-mvc-4

为了调用 ASP.NET MVC 4 Web API,我使用以下约定来调用其服务

 $.getJSON("api/products/", ...

如果我的网站 URL 是根目录,例如 http://localhost:10234,一切都很好。

但是一旦url变成http://localhost/SomeApp,ajax调用就会失败,因为

.getJSON 实际上调用的是 http://localhost/api/products 而不是 http://localhost/SomeApp/api/products。在这种情况下我应该做什么来纠正位置。 “/api/products/”或“~/api/products”不起作用。

最佳答案

在我的 _Layout.cshtml 的第一部分中,我放置

<script type="text/javascript">
    appFolder = @Url.Content("~/");
</script>

并将我的 javascript 调用更改为

$.getJSON(appFolder+"api/products/"

这解决了问题。

关于javascript - 当站点不是其 URL 的根时,如何在 getJSON 调用中定位 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12101373/

相关文章:

javascript - 为什么使用 mongoose 删除 mongodb 集合中的数据后集合模式的长度没有改变?

javascript - 为什么 Firefox 在从 JavaScript 加载时会更改表单标签属性?

validation - 使用自定义格式的日期时间验证。 '.' 分隔符出现问题

asp.net-mvc - 为什么 MVC 4 bundle 不捆绑 Knockout.js?

c# - Asp.Net 路由 - 显示完整的 URL

javascript - jQuery onChange 不工作

javascript - 使用 javascript 显示/隐藏 div

javascript - Select2 占位符并不总是出现

asp.net-mvc-4 - 从下拉列表中获取选定的值,同时将其与 razor foreach 绑定(bind)

asp.net-mvc-4 - 请求太大