【问题标题】:how to handle jquery ajax success and failure correctly如何正确处理jquery ajax成功和失败
【发布时间】:2014-07-06 12:28:38
【问题描述】:

所以我有一个像这样的 jquery ajax 调用:

$.ajax({
     url: 'delete.php', 
     data : {
          'prd_id': <prd-id-number>
     },
     success: function(data) {
          //show success here
     },
     error : function(error) {
          //show error here
     }
 });

我怀疑successerror handlers。错误处理程序是否仅用于"ajax level" 错误?我的意思是 - 我的应用程序可能有自己的错误,例如传递的产品 ID 不存在或不正确。现在,目前我正在传回一条消息,该消息进入success() 然后我必须执行一些内部逻辑来查看消息是应用程序错误还是真正成功 - 并基于此显示消息。

有什么方法可以将消息发送到error() - 这是捕获和处理ajax 错误的正确方法吗?

【问题讨论】:

  • 例如。您可以在data 使用您自己的响应标志(我使用成功字段)。如果为真——成功,假——失败。
  • @proxyfabio 我没有完全理解你的意思......
  • 我的意思是您通过success 方法获得的数据。只需添加data.success 字段即可。如果服务器的响应有 data.success == false 你失败了。如果data.success == true 一切正常。

标签: javascript jquery ajax error-handling


【解决方案1】:

可以通过几种不同的方式触发 Ajax 错误。最常见的是,http状态不是200,超时和数据解析错误,如json格式不正确。

您可以通过返回 http 响应代码标头自己从服务器触发错误。

例如,假设您有一个按 ID 查找用户的 API,而您发送的 ID 无效。您可以从错误回调中返回一个 404 响应代码标头,其中包含可在您的应用中使用的数据。

这允许您设置应用程序代码以使用错误回调处理这两种类型的错误

【讨论】:

    【解决方案2】:

    我认为你需要回忆一些概念。

    根据 axaj 调用发送的成功或失败调用 ajax 成功和错误处理程序。

    当 ajax 调用成功完成时调用成功处理程序,而当由于任何类型的错误无法完成 ajax 调用时调用错误处理程序。

    对于您的情况,您将不得不操作成功处理程序并显示所需的消息。

    成功完成 ajax 调用后,无法调用错误处理程序。

    【讨论】:

    • 最后一部分并不完全准确。可以在服务器上更改标头并触发错误回调
    猜你喜欢
    • 2014-03-25
    • 2016-04-29
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多