Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于提交的成功函数不起作用_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 基于提交的成功函数不起作用

Javascript 基于提交的成功函数不起作用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个Ajax调用正在工作,但success函数没有。我有几个日期,我输入后,点击提交,应该有一个小提示弹出说,数据保存到数据库。数据被保存到数据库中,但是我没有得到弹出警报窗口 $("#btnSubmit").bind("click", function () { createUpdateArrays(); var url = "/Sample/Selection"; $.ajax({

我有一个Ajax调用正在工作,但success函数没有。我有几个日期,我输入后,点击提交,应该有一个小提示弹出说,数据保存到数据库。数据被保存到数据库中,但是我没有得到弹出警报窗口

$("#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您得到了一个内部服务器错误,因此在将数据插入数据库后,您的服务器端代码中有一个错误。