如何将jQuery Ajax错误响应文本正确显示为Alert



我正试图使用从ajax回调错误创建警报

alert(response.responseText);

然而,我得到了整个字符串的错误文本,如

"{"form_error": {"__all__": ["Data with this Doc and Date already exists."]}}"

这是由我的Django视图返回的。

我的ajax函数看起来像:

$.ajax({
type : 'POST',
url :  ...,
dateType: 'json',
data: my_data,
success : function(response){
...
},
error : function(response, status, error){
var err = response.responseText;
alert("Error: " + err);
}
});

是否有一种方法只将相关文本显示为alert给用户,例如:

err = "Data with this Doc and Date already exists."
alert(err);

如何仅将相关信息显示为警报在寻找可能的解决方案的过程中,我已经浏览了许多SO帖子,包括提取上述响应文本的子字符串的方法,但都没有奏效

PS。我试着在Django视图端使用regex,但我可以通过多次迭代来做到这一点,最后只能得出:

{"Error": "Data with this Doc and Date already exists"}[注意花括号]

您收到的错误响应是一个json字符串。它是一个字符串化的json对象。您必须解析它才能访问json属性。之后,您可以加入包含错误消息的数组中的所有错误消息(在这种情况下只有一个,但由于它是一个数组,因此可以包含多个(

const err= JSON.parse(response.responseText).form_error.__all__.join("n");
alert(err);

相关内容

  • 没有找到相关文章

最新更新