如何在JS的fail方法中获取C#返回的BadRequest错误消息?
解决JS中无法获取BadRequest响应消息的问题
这个问题我之前帮别人排查过类似情况,核心是你误解了jQuery fail() 方法里的参数类型,咱们一步步来搞定它:
- 首先要明确:你在
.fail()里拿到的respond其实是jqXHR对象,不是直接的响应体数据,所以直接访问respond.message自然拿不到内容,只会显示[object Object]。 - 正确的做法是从jqXHR对象的
responseJSON属性里提取后端返回的JSON数据——因为你的后端返回的是{message: "Too many requests."}这种JSON格式的响应。修改后的代码应该是这样:
.fail(function(jqXHR, textStatus, errorThrown) { // 先判断是否有JSON响应体 if (jqXHR.responseJSON) { alert(jqXHR.responseJSON.message); } else { // 兼容非JSON格式的错误响应 alert(textStatus || errorThrown || "请求失败,请稍后重试"); } });
- 额外小技巧:如果不确定jqXHR里有什么属性,可以先在fail方法里加一句
console.log(jqXHR),打开浏览器控制台查看完整的对象结构,这样能更清楚地找到你需要的字段。
内容的提问来源于stack exchange,提问作者Maciejosas
相关产品推荐
相关产品推荐

