Javascript 基于提交的成功函数不起作用
我有一个Ajax调用正在工作,但success函数没有。我有几个日期,我输入后,点击提交,应该有一个小提示弹出说,数据保存到数据库。数据被保存到数据库中,但是我没有得到弹出警报窗口Javascript 基于提交的成功函数不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个Ajax调用正在工作,但success函数没有。我有几个日期,我输入后,点击提交,应该有一个小提示弹出说,数据保存到数据库。数据被保存到数据库中,但是我没有得到弹出警报窗口 $("#btnSubmit").bind("click", function () { createUpdateArrays(); var url = "/Sample/Selection"; $.ajax({
$("#btnSubmit").bind("click", function () {
createUpdateArrays();
var url = "/Sample/Selection";
$.ajax({
type: "GET",
url: url,
data: { ids: ids, dates: dates },
success: function (success) {
if (success === true) {
alert("Success");
}
else {
alert("error");
}
}
});
ids = "";
dates = "";
});
function createUpdateArrays() {
var i = 0;
$('input.remedy-id:checkbox').each(function () {
if ($(this).is(':checked')) {
var rid = $(this).attr("id");
$('.planned-date').each(function () {
var did = $(this).attr("id");
if (did === rid) {
var date = $(this).val();
ids += rid + ",";
dates += date + ",";
}
});
};
});
};
我似乎不明白这背后的原因 EDIT:在执行任何其他操作之前,请确保您的服务器实际上返回了一个响应
success函数期望服务器返回一个布尔值,但实际情况可能并非如此。如果您从服务器返回一个简单的字符串success,那么比较应该是If success==success。这完全取决于服务器作为响应返回的内容
可能您的服务器返回的状态代码为2xx。在任何一种情况下,都可以使用jQuery状态代码回调:
$.ajax({
type: "GET",
url: url,
data: { ids: ids, dates: dates },
statusCode: {
200: function(){alert("Success!")},
201: function(){alert("Success!")}
}
});
如果您不想这样做,只想使用成功回调,请尝试以下操作:
success: function (success) {
if (success || (success.length && success.length == 0)) { // this will almost definitely evaluate to true
console.log(success) // Do this to see what is actually being returned. I guarantee it isn't a boolean value.
alert("Success");
}
else {
alert("error");
}
}
您的success函数包含一个if条件,您是否从ajax调用返回一个布尔值,如果不删除if条件并直接显示alertTo add to@YashSoni input,您是否确切知道什么是success?执行console可能很有见地。logsuccess response:,成功回调函数中的成功。我知道,但成功方法返回一些数据,在本例中是函数success,如果这里应用了条件,那么从成功函数返回的数据是布尔值还是错误,因此,从success方法中删除IF条件并直接显示popup即使在删除IF语句并直接显示popup之后,代码也不会到达该点。我收到一个500内部服务器错误。但是,数据正在DB…@caitlinp中更新。请在jquery回调中向statusCode选项添加一个500。但事实上,500回调不应该记录成功lol。修复内部服务器错误,然后返回2xx响应,这就是我试图弄明白的。。。服务器已启动并正在运行,数据正在更新。。我不知道怎么了lol@caitlinp您得到了一个内部服务器错误,因此在将数据插入数据库后,您的服务器端代码中有一个错误。