我意识到已经有关于此的问题,但没有人能够解决我的问题。AJAX提交 - 状态200出错
我试图提交使用AJAX在jQuery的模态形式,但它不是尽管说状态200.在这里工作的代码:
$(document).ready(function() {
$("#dialog-form").dialog({
autoOpen: false,
});
$("#add-course").click(function() {
$("#dialog-form").dialog("open");
return false;
});
$("#btncancel").click(function() {
$("#dialog-form").dialog("close");
});
$('#<%=btnsubmit.ClientID%>').on('click', function (e) {
e.preventDefault();
var courseDetails = {};
courseDetails.Code = $('#<%=addcode.ClientID%>').val();
courseDetails.Name = $('#<%=addname.ClientID%>').val();
var jsonData = JSON.stringify({
courseDetails: courseDetails
});
$.ajax({
url: '<%=ResolveUrl("updatetest.aspx/addCourseSP") %>',
type: "POST",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
error: OnErrorCall,
});
function OnSuccess(response, jqXHR, textStatus, errorThrown) {
var result = response.d;
if (result == "success") {
$("#msg").html("Success");
$("#dialog-form").dialog("close");
} else {
$("#msg").html("jqXHR: " + JSON.stringify(jqXHR) + " " + "AJAX error: " + textStatus + ' : ' + errorThrown);
}
}
function OnErrorCall() {
$("#msg").html("error");
}
});
});
后面的代码调用,我检查作品的存储过程。我也检查了jsonlint.com上的JSON字符串,它说它是有效的。
我已经在浏览器(Chrome/Firefox)中使用F12进行了检查,它基本上和d:“error”一样表示了同样的事情,状态200。 JSON字符串在Params下,所以我不认为这是问题。
我试过使用各种不同的方式进行调试,现在它返回jqXHR:“成功”AJAX错误:[对象对象]:未定义。我不知道还有什么可以尝试的。有人有主意吗?
谢谢!我修改了我的函数,现在我得到了:1)jqXHR {“readyState”:4,“responseText”:“{\”d \“:\”error \“}”,“responseJSON”:{“d” :“error”},“status”:200,“statusText”:“OK”} 2)text status:success 3)data:[object Object] – user7703048
如果你问为什么状态仍然是200,那是因为框架认为请求已成功处理。如果您试图捕获业务逻辑错误,则需要显式更改返回状态或在响应'responseJSON'中检查错误标志。 – Jasen