AJAX发送错误

时间:2012-10-01 19:18:37

标签: javascript jquery ajax

我的脚本中有一个jQuery ajax函数的奇怪问题。

我的问题only发生在我的朋友计算机上,但我的电脑上没有任何东西。

我尝试将错误功能属性警告错误内容但strange发生了

$.ajax({
    url : EXECUTION_URL + 'ajax/users.php',
    type : 'POST',
    error : function( err1, err2, err3 ) {
        alert(err2 + ' : ' + err3 + ' , ' + err1.responseText);
    },
    data : {
        'value' : 'val',
        'type' : 'email'
    },
    success : function( data, statusText, xhr ) {
        alert(data)
    },
});

重要的一点是:
alert(err2 + ' : ' + err3 + ' , '+ err1.responseText)
但它只会触发:'error: , ' 为什么会这样?以及我如何知道发送此请求的错误

3 个答案:

答案 0 :(得分:1)

尝试使用$.ajaxSetup()来获取正确的错误:

$(function() {
    $.ajaxSetup({
        error: function(jqXHR, exception) {
            if (jqXHR.status === 0) {
                alert('Not connect.\n Verify Network.');
            } else if (jqXHR.status == 404) {
                alert('Requested page not found. [404]');
            } else if (jqXHR.status == 500) {
                alert('Internal Server Error [500].');
            } else if (exception === 'parsererror') {
                alert('Requested JSON parse failed.');
            } else if (exception === 'timeout') {
                alert('Time out error.');
            } else if (exception === 'abort') {
                alert('Ajax request aborted.');
            } else {
                alert('Uncaught Error.\n' + jqXHR.responseText);
            }
        }
    });
});

删除ajax调用中的错误函数,然后调用ajax方法。如果出现一些错误,ajax设置会捕获它并根据发生的错误显示正确的警报。

答案 1 :(得分:0)

您尝试提醒的对象可能无法转换为字符串(对于警报文本)。尝试使用console.log。 那么你就会知道发生了什么,你就能解决问题。

答案 2 :(得分:0)

您的错误功能

error : function( err1, err2, err3 ) {  // is equivalent to 

error : function(jqXHR, textStatus, errorThrown)  

Possible values for the second argument (besides null) are "timeout", "error", "abort", and "parsererror". 

也许err2为null,这就是你看不到err2输出的原因