【问题标题】:How do I handle a JQuery/AJAX error response?如何处理 JQuery/AJAX 错误响应?
【发布时间】: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.error 3. 查看网络控制台看看你收到了什么
  • error 处理程序仅在请求失败时执行。您的服务器是否返回 HTTP 错误(通常不包含自定义用户数据)?
  • 响应采用 JsonResponse 的形式 - 就 request 而言,这是一个成功的请求+响应。请求+响应过程没有失败。所以你需要在success: 中检查它,例如success: function(response) { if (response.error) {...
  • 更多关于 jQuery 认为错误的状态代码在这里 stackoverflow.com/q/41577823/2030565

标签: jquery ajax


【解决方案1】:

我发现了问题,我没有正确处理响应

error: function (response) {
  var error = response ["responseJSON"]["error"];
  $.each(error, function( code, message ) {
     $('#error-message').show().append(message);
  });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-20
    • 2014-02-24
    • 2016-01-24
    • 2013-08-05
    • 1970-01-01
    • 2012-09-12
    • 2012-02-25
    • 2011-03-25
    相关资源
    最近更新 更多