サーバーで WebApi を呼び出す次の単純な jquery get ステートメントがあります。
$.get('api/DataAPI?tenantId=1&datatype="Contacts"&actionname="ActiveOnly"', GetDataRetrieved);
これは、ビジュアル スタジオで正常に動作します。Chrome でネットワーク トラフィックを確認したところ、次のリクエストが作成されたことが示されています。
http://localhost:61882/api/DataAPI?tenantId=1&datatype=%22Contacts%22&actionname=%22ActiveOnly%22
Web サイトを IIS にデプロイしたところ、API 呼び出しが 404 not found で失敗しました。Chrome でネットワーク トラフィックを確認したところ、次のような問題が発生しました。
http://localhost/api/DataAPI?tenantId=1&datatype=%22Contacts%22&actionname=%22ActiveOnly%22
IIS に配置されたときの Web サイトは にありますhttp://localhost/MyWebSite
。したがって、呼び出しは次の場所に移動する必要があります。
http://localhost/MyWebSite/api/DataAPI?tenantId=1&datatype=%22Contacts%22&actionname=%22ActiveOnly%22
Visual Studio と IIS への展開の両方で機能する $.get 呼び出しの正しい構文は何ですか (かみそり @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>