ASP.NET 4 JQuery AJAX веб-метод вызова - PullRequest
1 голос
/ 07 ноября 2010

В ASP.NET 3.5 у меня был этот javascript на странице (default.aspx):

function getMoreNewsItems() {
    $.ajax({
        type: "POST",
        url: "default.aspx/LoadNewsItems",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            alert(msg.d);
        }
    });
}

С этим в коде (default.aspx.cs):

[System.Web.Services.WebMethod]
public static string LoadNewsItems() {
    return "test1";
}

У меня есть ScriptManager на странице с EnablePageMethods = true.Все работало нормально.

Теперь проект обновлен до ASP.NET 4.0 и использует новую функцию маршрутизации URL.Вызов AJAX больше не работает.В FireBug я вижу, что он возвращает полную страницу вместо XML-ответа.

Что изменилось в ASP.NET 4, что могло вызвать эту ошибку?

1 Ответ

9 голосов
/ 08 ноября 2010

Исправлено,

Изменить

url: "default.aspx/LoadNewsItems",

К

url: '<%= ResolveUrl("default.aspx/LoadNewsItems") %>',

Это связано с маршрутизацией URL.

...