【问题标题】:how to display exception response text如何显示异常响应文本
【发布时间】:2020-04-11 01:20:40
【问题描述】:

我有以下功能,我试图显示从 ex.responseText 返回的响应文本。每次我尝试它都会返回为“未定义”但文本实际上存在

onError: function (ex) {


            $('<div>' + ex._message + '</div>').dialog({
                modal: true,
                resizable: false,
                title: "Items",
                buttons: { "Okay": function () { $(this).dialog("close"); } }
            });
        }

所以我尝试了以下

$('<div>' + ex.responseText + '</div>').dialog({
                    modal: true,
                    resizable: false,
                    title: "Items",
                    buttons: { "Okay": function () { $(this).dialog("close"); } }
                });

它向我显示了这样的错误{"message":"You have entered duplicate items. Please remove."}

我只希望它显示实际消息 You have entered duplicate items. Please remove.,而不显示 {} 括号和“消息”文本。

我也试过了

 var message = JSON.parse(ex.responseText)._message;
 $('<div>' + message + '</div>').dialog({
            modal: true,
            resizable: false,
            title: "Items",
            buttons: { "Okay": function () { $(this).dialog("close"); } }
        });

它仍然以未定义的形式返回。

我做错了什么?

【问题讨论】:

    标签: javascript json error-handling ex


    【解决方案1】:

    尝试 ex.responseText.message,因为错误消息是您需要针对键的对象。

    说得更清楚:

    ex.responseText = {
        "message": "You have entered duplicate items. Please remove."
    }
    
    ex.responseText.message = "You have entered duplicate items. Please remove.";
    

    【讨论】:

    • 这不起作用,它仍然返回为“未定义”
    • @marry 替代方案是:JSON.parse(ex.responseText).message 这应该可以。
    • 原因是如果它显示为 {message:"sjndjas"} 这意味着 JSON 是字符串化的。它应该被解析为一个对象。
    • 谢谢!!!这么久我一直在尝试“ var message = JSON.parse(ex.responseText)._message;”我没有注意到它应该是“message”而不是“_message”。快把我逼疯了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    相关资源
    最近更新 更多