如何显示$ .ajax调用返回的错误?

时间:2012-07-11 12:37:29

标签: jquery

我有一个代码,需要永远加载,最后当我把错误处理程序显示警告,但我需要知道它返回了什么错误?我怎么知道?

编辑:我收到请求的网址未找到,但我确定网址:我的主机上的网址是有效的,可能是什么问题?我甚至可以直接在浏览器中访问它。

// process logging in a user from sidebar
$("#login-form").submit(function(event) {
    $('input:submit').attr("disabled", true);
    $("p.form-result").empty();
    $('p.form-submit').after('<p class="loading"><img src="<?php bloginfo('template_directory'); ?>/img/loading.gif" alt="" /></p>');
    $.ajax({
        url: '<?php bloginfo('template_directory'); ?>/ajax/login.php',
        type: 'POST',
        data: $(this).serialize(),
        dataType: 'json',
        success: function(data){
            $('.loading').remove();
            $('input:submit').attr("disabled", false);
            if (data.status) {
                // success
                $("p.form-result").html('<span class="success">' + data.message + '</span>');
                window.setTimeout(function(){location.reload()},3000);
            } else {
                // error
                $("p.form-result").html('<span class="error">' + data.message + '</span>');
            }
        },
        error: function(data){
            alert('error');
        }
    });
    return false;
});

6 个答案:

答案 0 :(得分:14)

jQuery函数error的{​​{1}}事件接收3个参数

$.ajax

这是此事件的jQuery documentation

  

请求失败时要调用的函数。该功能收到   三个参数:jqXHR(在jQuery 1.4.x,XMLHttpRequest中)对象,a   描述发生的错误类型的字符串和可选项   异常对象,如果发生了一个。第二个可能的值   参数(除了null)是“超时”,“错误”,“中止”和   “parsererror”。发生HTTP错误时,errorThrown会收到   HTTP状态的文本部分,例如“未找到”或“内部”   服务器错误。“从jQuery 1.5开始,错误设置可以接受一个数组   功能。每个函数将依次调用。注意:这个处理程序   没有调用跨域脚本和JSONP请求。这是个   Ajax事件。

您将能够知道参数error : function(jqXHR, textStatus, errorThrown){ }

的错误

答案 1 :(得分:7)

当ajax调用中包含一些无效参数时,执行ajax调用中的错误事件。以下函数将通过抛出错误并在警报中显示错误定义来帮助您理解错误代码。

error: function(xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                },

答案 2 :(得分:2)

使用错误函数的data参数来警告错误及其属性。它模仿你的实际错误。

error: function(data){
     alert(data);
}

根据此问题的数据(错误)对象的可能值(http://stackoverflow.com/questions/95600/jquery-error-option-in-ajax-utility)回答

timeout - when your specified timeout is exceeded
error - http error, like 404
notmodified - when requested resource was not modified since last request
parsererror - when an xml/json response is bad

答案 3 :(得分:0)

如果您连接,请尝试在字符串和变量之间添加“+”。 像这样:

url: '<?php bloginfo('+template_directory+'); ?>/ajax/login.php'

答案 4 :(得分:0)

更改此

url: '<?php bloginfo('template_directory'); ?>/ajax/login.php',

通过这个

url: '<?php bloginfo("template_directory"); ?>/ajax/login.php',

:)

答案 5 :(得分:0)

您不能使用警报语句检查对象数据

使用console.log(data)检查错误

error: function(data){
     console.log(data);
}