ajaxリクエストからの着信URLをGlobal.asaxのWebサービスメソッドにマップしようとしています。Webサービスはこのパス/ajax/BookWebService.asmx
にあり、2つのメソッドGetListOfBook
とがありGetListOfAuthor
ます。
Scriptタグでurl:/ajax/book/list
の代わりにurl :を使用したい。/ajax/BookWebService.asmx/GetListOfBook
これが私のスクリプトとマークアップです:
<script type="text/javascript">
$(function () {
$("#btnCall").click(function () {
$.ajax({type: "POST",
url: "/ajax/book/list",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
var list = response.d;
$('#callResult').html(list);
},
error: function (msg) {
alert("Oops, something went wrong");
}
});
});
});
</script>
<div>
<div id="callResult"></div>
<input id="btnCall" type="button" value="Call Ajax" />
</div>
これがGlobal.asaxです:
void Application_BeginRequest(object sender, EventArgs e)
{
var currentRequest = HttpContext.Current.Request.Url.AbsolutePath;
if (currentRequest.Contains("ajax/book/list")) {
HttpContext.Current.RewritePath("/ajax/BookWebService.asmx/GetListOfBook");
}
}
FireBugコンソールにチェックインすると、これが表示されます。
"NetworkError:500 Internal Server Error-localhost:13750 / ajax / book /list"
url:/ajax/book/list
をurl:/ajax/BookWebService.asmx/GetListOfBook
に変更すると、期待どおりに機能します。
VS2010と.NET4を使用しています。
/ajax/book/list
代わりにajax呼び出しを行うにはどうすればよい/ajax/BookWebService.asmx/GetListOfBook
ですか?