这是我的样本ajax代码。
$.ajax({
type: 'POST',
url: validateAjaxURL,
success: function (data) {
var returnData = data;
if (returnData.match("^selectedUno-")) {
$('#new_caregiver_popup_div').dialog('close');
} else {
$("#new_caregiver_popup_div").html(data);
}
},
error: function() {
alert('Unable to contact server');
}
});
这很好用。但是如果发生错误,它只会发出警告“无法联系服务器”,因此我想获得有关错误的更多详细信息,例如错误类型,错误原因等。我该怎么做?
答案 0 :(得分:2)
我经常写“错误”函数,如下所示:
function (jQXHR, textStatus, errorThrown) {
alert("An error occurred whilst trying to contact the server: " + jQXHR.status + " " + textStatus + " " + errorThrown);
}
这是根据http://api.jquery.com/jQuery.ajax/的文件。您可以阅读3个参数以了解更多信息。根据错误的性质,有时它比其他错误信息更多。
另外,根据您的浏览器,查看控制台和开发人员工具中的网络日志记录(大多数浏览器上的F12)也可能会为您提供一些线索。
答案 1 :(得分:1)
我通常使用它,它会给你准确的错误信息:
$.ajax({
type: 'POST',
url: validateAjaxURL,
success: function (data) {
var returnData = data;
if (returnData.match("^selectedUno-")) {
$('#new_caregiver_popup_div').dialog('close');
} else {
$("#new_caregiver_popup_div").html(data);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + XMLHttpRequest.responseText);
}
});
这是代码:
<script type="text/javascript">
$(function () {
$("#btnValidate1").click(function () {
var number = $("#txtNumber1").val();
$.ajax({
type: "POST",
url: " Default.aspx/ValidateNumber",
data: '{number: "' + number + '"}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
alert("Valid number.");
},
error: OnError
});
});
});
function OnError(xhr, errorType, exception) {
var responseText;
$("#dialog").html("");
try {
responseText = jQuery.parseJSON(xhr.responseText);
$("#dialog").append("<div><b>" + errorType + " " + exception + "</b></div>");
$("#dialog").append("<div><u>Exception</u>:<br /><br />" + responseText.ExceptionType + "</div>");
$("#dialog").append("<div><u>StackTrace</u>:<br /><br />" + responseText.StackTrace + "</div>");
$("#dialog").append("<div><u>Message</u>:<br /><br />" + responseText.Message + "</div>");
} catch (e) {
responseText = xhr.responseText;
$("#dialog").html(responseText);
}
$("#dialog").dialog({
title: "jQuery Exception Details",
width: 700,
buttons: {
Close: function () {
$(this).dialog('close');
}
}
});
}
</script>
的屏幕截图