jQuery Ajax 错误显示异常响应消息

jQuery Ajax error show Exception Response Message

提问人:pedrodotnet 提问时间:3/3/2022 更新时间:3/3/2022 访问量:1206

问:

我知道这是一个重复的问题,但其他人都没有帮助我:

在以下 Ajax 上:

$.ajax({
           type: "POST",
           url: "url",
            data: {
                     //data
                   },
            dataType: "json",
            success: function (data) {
                     //do success logic
                    },
             error: function (req, status, error) {
                     var err = req.responseText.Message;
                     console.log(err);
                     }
        });

我只需要显示从服务器返回的异常消息:

这仅是:"Error al procesar el recorrido o el mismo es inexistente"

但如下:req.responseText

responseText: "System.Exception: Error al procesar el recorrido o el mismo es inexistente\r\n   at 
 etc etc etc\r\n"

我已经尝试了一些方法,例如: 但这在解析时失败了response = jQuery.parseJSON( req.responseText );

或:

req.responseJSON.Message 

但显示未定义

我无法仅显示自定义异常消息,有什么想法吗?

jQuery ajax 错误处理 ASP.NET-CORE-5.0

评论


答:

1赞 Jason Pan 3/3/2022 #1

尽量使用 ,而不是 。它在我身边工作得很好。req.responseJSON.valuereq.responseJSON.Message

enter image description here


我的测试代码

Javascript 代码

function ShowException() {
    $.ajax({
        type: "POST",
        url: "/Home/ShowException",
        data: {
            type:1
        },
        dataType: "json",
        success: function (data) {
            alert(data.value);
        },
        error: function (req, status, error) {
            var err = req.responseJSON.value;
            console.log(err);
        }
    });
}

C# 代码

[HttpPost]
public IActionResult ShowException(int type)
{
    try
    {
        if (type == 1)
        {
            return Ok(Json("success"));
        }
        else {
            return NotFound(Json("404 not found"));
        }
        
    }
    catch (Exception ex)
    {
        return BadRequest(Json("456"));
        throw;
    }
}

评论

1赞 pedrodotnet 3/3/2022
这几乎是我的解决方案,返回一个 badRequest 而不是抛出异常,在 req 上创建 responseText,只有我的自定义消息。我会将其标记为答案,非常感谢您抽出时间,这给了我正确的方法