从webmethod发送错误消息

时间:2011-07-11 06:40:53

标签: jquery asp.net ajax

如何从webmethod获取错误消息,我想发起错误。此外,我想在不同的场合使用不同的错误消息。

        $.ajax({
            type: "POST",
            url: "betting.aspx/submitFunction",
            data: JSON.stringify({ results: jsonObj, edit: $("#ctl00_ContentPlaceHolder1_CreateOrEdit").val() }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(arg) { //call successfull
                window.location = "bHistory.aspx";
            },
            error: function(xhr) {
                alert("Error! You need to login, and try again");
                window.location = "login.aspx";
                //error occurred
            }
        });

2 个答案:

答案 0 :(得分:5)

你可以试试这个:

error: function(msg, status) {
    if (status === "error") {
        var errorMessage = $.parseJSON(msg.responseText);
        alert(errorMessage.Message);
    }
}

答案 1 :(得分:0)

我也遇到过这个问题。问题是,如果您从Web方法中抛出异常,它会被包装,就像"Message":"{your message}","StackTrace":" at ...

一样

我最终做的是创建这个js函数来解析返回的异常 它非常丑陋,我很想知道是否有人能想出更好的东西。

function getErrorMessage(e) {
    return e.responseText.substring(e.responseText.indexOf("\"Message\":\"") + "\"Message\":\"".length, e.responseText.indexOf("\",\"Stack"));
}