为了调用 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/