При добавлении FriendlyUrls вызовы jQuery ajax не работают с веб-формами ASP.Net
Следующий код прекрасно работает без включения FriendlyUrls для проекта ASP.Net Web Forms:
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
url: '/Default.aspx/GetData',
type: 'POST',
beforeSend: function( xhr ) {
xhr.setRequestHeader("Content-type",
"application/json; charset=utf-8");
},
success: function (result) {
var resultData = (result.d? result.d : result);
alert(resultData);
},
error : function(){
alert('error');
}
});
});
</script>
Вот код на стороне сервера для метода страницы (WebMethod):
[System.Web.Services.WebMethod]
public static string GetData()
{
return "Hello";
}
Когда я загружаю страницу в браузере, я вижу ответ как{ "d" : "Hello" }
, который является ожидаемым результатом.
Теперь, если дружественные URL-адреса добавляются с помощью пакета NuGetMicrosoft.AspNet.FriendlyUrls, тот же код не будет работать. Поскольку FriendlyUrls включены, я изменил URL в вызове jquery ajax, чтобы"/ Default / GetData", но тогда я бы не получил ожидаемого результата. Скорее я получаю html страницы Default.aspx.
Я изо всех сил пытаюсь выяснить, почему это не будет работать, единственное, что я изменил, это добавление пакета nuget для FriendlyUrls!
Я пытался найти решения, и самые близкие читаемые ответы, которые я мог найти, были:
Использование jQuery для AJAX с веб-формами ASP.NET
http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/
Обратите внимание, что все связанные посты в данных ответах не используют FriendlyUrls. Я также видел некоторые ответы, которые указывают, что ajax-вызовы jquery будут работать нормально с MVC, WebAPI, но мой проект ограничен использованием ASP.Net Web Forms.
Я что-то делаю не так или здесь что-то упускаю? Кто-нибудь сталкивался с таким же сценарием для своего проекта? Если да, то можете ли вы ответить, как это можно решить? Спасибо большое, что нашли время, чтобы прочитать и ответить.