0

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

我的问题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: , '
为什么会这样?以及我如何知道发送此请求的错误

4

3 回答 3

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 设置会捕获它并根据发生的错误显示适当的警报。

于 2013-01-28T13:28:14.633 回答
0

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

于 2012-10-01T19:22:02.387 回答
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 为空,这就是您看不到 err2 输出的原因

于 2012-10-01T19:43:25.217 回答