Я пытаюсь проверить функцию, которая находится на стороне сервера, вызывая ее с клиентской стороны с помощью AJAX.Вызов метода стороне сервера с использованием AJAX
Я получаю эту ошибку каждый раз, когда я вызываю метод AJAX:
http://localhost:5958/myaccount/notifications/myaccount/notifications/Default.aspx/method Не удалось загрузить ресурс: сервер ответил со статусом 404 (не найден)
Вот моя функция AJAX:
function ShowCurrentTime() {
$.ajax({
type: "POST",
url: "myaccount/notifications/Default.aspx/method",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
}
});
}
function OnSuccess(response) {
alert(response.d);
}
управления HTML:
<input id="btnGetTime" type="button" value="Show Current Time"
onclick="ShowCurrentTime()" />
Функции Я пытаюсь вызвать на стороне сервера:
[WebMethod]
protected bool method()
{
return true;
}
Что такое правильный способ сделать это?
Update
Измененный URL для: '<%= ResolveUrl("~/default.aspx/method") %>'
и теперь я получаю 500 Внутренняя ошибка сервера.
Update2
Внутренняя ошибка была из-за [HttpPost] атрибут, который я изменил к [WebMethod], и это работает.
Взгляните на принятый ответ на этот вопрос SO: http://stackoverflow.com/questions/6928533/calling-a-webmethod-with-jquery-in-asp-net-webforms Попробуйте создать URL-адрес для target WebMethod, как это делается там, а не hardcoding его –
@IanGilroy изменил URL-адрес на: <% = ResolveUrl ("~/myaccount/notification/Default.aspx/method")%>, и теперь я получаю эту ошибку: SyntaxError: недопустимые флаги, предоставленные для уведомлений конструктора RegExp –
, возможно, вы можете ссылаться на другую ссылку следующим образом: [ajax call jquery asp.net mvc] (http://stackoverflow.com/questions/414726/asp-net-mvc- and-jquery-get-info-to-controller) – Jack1987