2012-10-01 94 views
0

我有一个奇怪的问题,我的脚本中的jQuery ajax函数。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: , '
为什么会发生这种情况?以及如何我可以知道发送此请求的错误

+0

使用开发工具在几乎所有的浏览器或类似http://www.fiddler2.com/fiddler2/ – Joe

+0

我最大的问题是我不能看到我的电脑 –

回答

0

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

+0

毫米毫米的错误,我认为所有其中的字符串由jquery默认我会尝试console.log –

+0

至少err1不能是一个字符串,因为你正在访问它的一个元素(.responseText) – alexandernst

+0

err1是一个对象,err1.responseText是一个文本?或对象? –

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

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