我有以下简单的 jquery get 语句,它在我的服务器上调用 WebApi:
$.get('api/DataAPI?tenantId=1&datatype="Contacts"&actionname="ActiveOnly"', GetDataRetrieved);
这在视觉工作室中运行良好。我检查了 chrome 中的网络流量,它显示创建了以下请求:
http://localhost:61882/api/DataAPI?tenantId=1&datatype=%22Contacts%22&actionname=%22ActiveOnly%22
我现在已经将我的网站部署到 IIS,API 调用现在失败,找不到 404。我检查了chrome中的网络流量,可以看到问题:
http://localhost/api/DataAPI?tenantId=1&datatype=%22Contacts%22&actionname=%22ActiveOnly%22
部署到 IIS 时的网站位于http://localhost/MyWebSite
. 所以电话应该转到:
http://localhost/MyWebSite/api/DataAPI?tenantId=1&datatype=%22Contacts%22&actionname=%22ActiveOnly%22
我的 $.get 调用中的正确语法是什么,以便它适用于 Visual Studio 并部署到 IIS(我很想使用 razor @Url.Content 但这在 javascript 块中不起作用)?
提前致谢
编辑:这是整个 .cshtml 页面的标记:
@{
ViewBag.Title = "MyWebSite";
Layout = "~/Views/Shared/SiteLayout.cshtml";
}
@section HeaderContent
{
<script type="text/javascript" src="@Url.Content("~/assets/scripts/App/Base64EncodeDecode.js")"></script>
}
<script type="text/javascript">
$(function () {
$("#TestButton").click(function () {
$.get('api/DataAPI?tenantId=1&datatype="Contacts"&actionname="ActiveOnly"', GetDataRetrieved);
});
});
function GetDataRetrieved(data) {
//alert(base64_decode(data));
alert(data);
}
</script>
<button id="TestButton">Test Button</button>