jQueryAJAX-获取失败的详细信息并插入DIV

jQuery AJAX - get details for failure and insert into DIV

本文关键字:插入 DIV 详细信息 获取 失败 jQueryAJAX-      更新时间:2023-09-26

我是jQuery和AJAX的新手,并且边做边学——我有一个AJAX调用,到目前为止运行良好(从html形式的输入字段调用)。如果AJAX调用有错误,我想捕获错误的详细信息,并将其显示在页面上的DIV中。不过,我不知道如何捕获AJAX错误,而且似乎找不到与我类似的工作示例。

这是我的Javascript:

<script type="text/javascript">
    $(document).ready(function() {
        $("#storeManager").change(function(){
            var storeManager = $("#storeManager").val();
            $.post('editProject.php', { type: 'storeManager', storeManager: storeManager, id: '1E1DDA14-D2C6-4FC8-BA5F-DBCCC7ABAF7F' }, function(data) {
                $("#storeManagerRow").addClass("success");
                $("#storeManagerRow").removeClass("danger");
            }).fail(function () {
                $("#storeManagerRow").addClass("danger");
                $("#ajaxAlert").addClass("alert alert-danger");
                $("#ajaxAlert").html(show AJAX error response here);
            });
         }); 
    }); 
</script>

这是我想显示任何AJAX失败的错误文本的地方:

$("#ajaxAlert").html(show AJAX error response here);

我不知道如何获得错误响应/文本-感谢任何与我类似的指导或示例。

您可以使用$.post()的.fail()中的参数来获取错误文本,如:

$(document).ready(function() {
        $("#storeManager").change(function(){
            var storeManager = $("#storeManager").val();
              $.post('editProject.php', { type: 'storeManager', storeManager: storeManager, id: '1E1DDA14-D2C6-4FC8-BA5F-DBCCC7ABAF7F' }, function(data) {
              $("#storeManagerRow").addClass("success");
              $("#storeManagerRow").removeClass("danger");
          }).fail(function (xhr, textStatus, error) {
              $("#storeManagerRow").addClass("danger");
              $("#ajaxAlert").addClass("alert alert-danger");
              //get textStatus
              $("#ajaxAlert").html(textStatus);
              //or use responseText, as
              $("#ajaxAlert").html(xhr.responseText);
          });
    }); 
}); 

您可以将xhr作为参数添加到.fail函数中。其中一个字段是responseText,它应该是发生故障时从服务器返回的任何内容。

}).fail(function (xhr) {
   $("#storeManagerRow").addClass("danger");
   $("#ajaxAlert").addClass("alert alert-danger");
   $("#ajaxAlert").html(xhr.responseText);
});