jquery - 如何捕获 Ajax 查询发布错误?

标签 jquery ajax post error-handling

如果 Ajax 请求失败,我想捕获错误并显示适当的消息。

我的代码如下所示,但我无法捕获失败的 Ajax 请求。

function getAjaxData(id)
{
     $.post("status.ajax.php", {deviceId : id}, function(data){

        var tab1;

        if (data.length>0) {
            tab1 = data;
        }
        else {
            tab1 = "Error in Ajax";
        }

        return tab1;
    });
}

我发现,当 Ajax 请求失败时,“Error in Ajax”从不执行。

如何处理 Ajax 错误并在失败时显示相应的消息?

最佳答案

从 jQuery 1.5 开始,您可以使用延迟对象机制:

$.post('some.php', {name: 'John'})
    .done(function(msg){  })
    .fail(function(xhr, status, error) {
        // error handling
    });

另一种方法是使用 .ajax:

$.ajax({
  type: "POST",
  url: "some.php",
  data: "name=John&location=Boston",
  success: function(msg){
        alert( "Data Saved: " + msg );
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
     alert("some error");
  }
});

关于jquery - 如何捕获 Ajax 查询发布错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2833951/

相关文章:

jQuery animate() 不动画背景颜色 rgba

jquery - 自动滑动 JQUERY

asp.net - 关于什么以及如何不使用 ASP.NET AJAX 的资源?

JSF commandLink,POST和后退按钮

javascript - $.post() html 到另一个 html 文件

jquery - 动态水平布局

jquery - 如何使用 jquery 中的切换来防止点击队列建立?尝试使用绑定(bind)/取消绑定(bind)('click')

php - 使用ajax和php按价格排序

javascript - 从页面中隐藏的代码部分获取 HTML

javascript - 如何使用 actions 在 React es6 和 axios 中发布数据