首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何捕获Ajax查询post错误?

如何捕获Ajax查询post错误?
EN

Stack Overflow用户
提问于 2010-05-14 20:07:35
回答 7查看 451.8K关注 0票数 230

如果Ajax请求失败,我希望捕获错误并显示相应的消息。

我的代码类似于以下代码,但是我无法捕获失败的Ajax请求。

代码语言:javascript
复制
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错误并在失败时显示相应的消息?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-05-14 20:11:53

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

代码语言:javascript
复制
$.post('some.php', {name: 'John'})
    .done(function(msg){  })
    .fail(function(xhr, status, error) {
        // error handling
    });

另一种方法是使用.ajax

代码语言:javascript
复制
$.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");
  }
});
票数 337
EN

Stack Overflow用户

发布于 2012-08-25 05:17:37

jQuery 1.5添加了延迟对象,很好地处理了这一点。只需调用$.post并在调用后附加任何您想要的处理程序。延迟对象甚至允许您附加多个成功和错误处理程序。

示例:

代码语言:javascript
复制
$.post('status.ajax.php', {deviceId: id})
    .done( function(msg) { ... } )
    .fail( function(xhr, textStatus, errorThrown) {
        alert(xhr.responseText);
    });

在jQuery 1.8之前,函数done称为successfail称为error

票数 302
EN

Stack Overflow用户

发布于 2010-05-14 20:12:38

代码语言:javascript
复制
$.ajax({
  type: 'POST',
  url: 'status.ajax.php',
  data: {
     deviceId: id
  },
  success: function(data){
     // your code from above
  },
  error: function(xhr, textStatus, error){
      console.log(xhr.statusText);
      console.log(textStatus);
      console.log(error);
  }
});
票数 98
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2833951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档