【发布时间】:2022-01-14 16:48:31
【问题描述】:
可能很简单,但我不知道如何处理 jQuery/AJAX 错误
我已经设法使用 AJAX 提交了一个表单,它运行良好,但我无法捕捉并显示我想要的错误。
响应是 JsonResponse 的形式,并返回这个包含所有错误的数组(可以是一个或多个)
{error: {account_number: ["Account with this Account number already exists."]}}
我想在一个 div 中显示所有错误,但是下面的代码不起作用
$("#form").submit(function(e) {
e.preventDefault();
// serialize the data for sending the form data.
var serializedData = $(this).serialize();
// make POST ajax call
$.ajax({
type: 'POST',
url: "ajax_call.php",
data: serializedData,
success: function(response) {
alert('Done!')
},
error: function(response) {
// alert the error if any error occured
$("#error-message").prepend(
response["responseJSON"]["error"]
)
}
})
})
【问题讨论】:
-
How do I ask a good question?: "描述问题。“它不起作用”的描述不足以帮助人们理解您的问题。相反,告诉其他人读者预期的行为应该是什么。告诉其他读者错误消息的确切措辞是什么,以及产生它的代码行。"
-
1.在控制台中查找错误。 2. console.log(response) 看看你是否确实有
responseJSON.error3. 查看网络控制台看看你收到了什么 -
error处理程序仅在请求失败时执行。您的服务器是否返回 HTTP 错误(通常不包含自定义用户数据)? -
响应采用 JsonResponse 的形式 - 就 request 而言,这是一个成功的请求+响应。请求+响应过程没有失败。所以你需要在
success:中检查它,例如success: function(response) { if (response.error) {... -
更多关于 jQuery 认为错误的状态代码在这里 stackoverflow.com/q/41577823/2030565