我意识到已有问题,但没有一个能够解决我的问题。
我尝试使用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进行了检查,基本上说的是同样的事情,状态200用d:&#34;错误&#34;。 JSON字符串在Params下,所以我不认为这是问题所在。
我已尝试使用各种不同的方式进行调试,现在它正在返回jqXHR:&#34;成功&#34; AJAX错误:[object Object]:未定义。我不知道还能尝试什么。有人有什么想法吗?
答案 0 :(得分:0)
jQuery.ajax()将成功回调显示为:
<强>成功强>
类型:功能(任何数据,字符串textStatus,jqXHR jqXHR)
与您的参数列表不匹配
function OnSuccess(response, jqXHR, textStatus, errorThrown)
当您尝试在脚本中使用此功能时,textStatus
不是字符串,而errorThrown
未定义。
因此请求成功(状态200),但是您的脚本在响应返回给客户端后生成错误。
答案 1 :(得分:-1)
您的函数包含以下行
dataType: "json",
这意味着返回的数据必须正确格式化为json,如果不是,则会将其视为错误