AJAX-вызов WebMethod

У меня есть следующий веб-метод в моем веб-приложении C#/.NET, файл lite_host.aspx.cs:

[WebMethod]
public static bool UpdatePage(string accessCode, string newURL)
{
    bool result = true;
    try {
       HttpContext.Current.Cache[accessCode] = newURL;
    }
    catch {
        result = false;
    }

    return result;
}

Он должен получить значения «accessCode» и «newURL» из функции JavaScript через вызов jQuery AJAX и внести соответствующие изменения в кэш:

function sendUpdate() {
       var code = jsGetQueryString("code"); 
       var url = $("#url_field").val();
       var options = { error: function(msg) { alert(msg.d); },
                       type: "POST", url: "lite_host.aspx/UpdatePage",
                       data: {'accessCode': code, 'newURL': url}, 
                       contentType: "application/json; charset=utf-8",
                       dataType: "json",
                       async: false, 
                       success: function(response) { var results = response.d; } }; 
       $.ajax(options);
}

Однако, когда я вызываю функцию sendUpdate(), мой сценарий завершается ошибкой $.ajax, и я получаю текст предупреждения "undefined".


person cycero    schedule 02.10.2011    source источник


Ответы (1)


Undefined означает, что msg.d не существует. Попробуйте выполнить console.log(msg) и используйте отладчик Chrome, чтобы увидеть, что выводится (да, я знаю) на консоль.

person Joe    schedule 02.10.2011
comment
Он печатает 500 (внутренняя ошибка сервера). Но я не уверен, что вызывает эту ошибку. - person cycero; 02.10.2011
comment
в вашей функции ошибок добавьте еще одну строку: console.log(data) и убедитесь, что она отформатирована так, как вы ожидаете. - person Joe; 02.10.2011