当站点不是其URL的根时,如何在getJSON调用中查找API

Tae*_*hin 2 javascript asp.net-mvc-4

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

 $.getJSON("api/products/", ...
Run Code Online (Sandbox Code Playgroud)

如果我的网站的网址是根,例如http://localhost:10234,一切都很好.

但是一旦网址成为http://localhost/SomeApp,ajax调用就失败了,因为

.getJSON实际上是调用http://localhost/api/products而不是http://localhost/SomeApp/api/products.在这种情况下,我应该怎么做才能纠正位置."/ api/products /"或"〜/ api/products"不起作用.

Tae*_*hin 5

在我的_Layout.cshtml的第一部分,我把

<script type="text/javascript">
    appFolder = @Url.Content("~/");
</script>
Run Code Online (Sandbox Code Playgroud)

并改变了我在javascripts中的调用

$.getJSON(appFolder+"api/products/"
Run Code Online (Sandbox Code Playgroud)

这解决了这个问题.