Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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
Php Ajax异步选项使我陷入循环_Php_Jquery_Ajax_Asynchronous - Fatal编程技术网

Php Ajax异步选项使我陷入循环

Php Ajax异步选项使我陷入循环,php,jquery,ajax,asynchronous,Php,Jquery,Ajax,Asynchronous,我正在使用ajax对通过的一些日期进行验证,基本上确保第一个日期/时间出现在第二个日期/时间之前,并且两个日期/时间都不是空的 如果将async设置为true,则它可以工作,但我得到了一个假阳性,因为它与表单验证的其余部分同时工作。如果我将其设置为false,那么会得到一个与XMLHttpRequest异常101类似的错误 我只是想知道是什么导致了这个错误,以及如何在保持async设置为false的同时消除它。我确实有其他的选择来绕过它,但我更想知道它是什么以及如何修复它 示例查询字符串?操作=

我正在使用ajax对通过的一些日期进行验证,基本上确保第一个日期/时间出现在第二个日期/时间之前,并且两个日期/时间都不是空的

如果将async设置为true,则它可以工作,但我得到了一个假阳性,因为它与表单验证的其余部分同时工作。如果我将其设置为false,那么会得到一个与XMLHttpRequest异常101类似的错误

我只是想知道是什么导致了这个错误,以及如何在保持async设置为false的同时消除它。我确实有其他的选择来绕过它,但我更想知道它是什么以及如何修复它

示例查询字符串?操作=验证日期和开始日期=2009年12月12日21:00:00和结束日期=2009年12月12日23:00:00和rsvp开始日期=2009年11月21日和rsvp结束日期=2009年11月30日

将返回一个或一个逗号分隔的字段列表,这些字段应标记为坏

function validate_event()
{   

    $.ajax({
        type: "POST",
        url: "company_event_ajax.php",
        data: querystring,
        dataType: "text",
        async: false,
        error:function (xhr, ajaxOptions, thrownError)
        {
            alert(thrownError);
        },
        success: function(msg)
        {
            if (msg == "")
            {
                $("#event_start_date,#event_end_date,#rsvp_start_date,#rsvp_end_date").css("background-color", "#fff");
            }

            else
            {
                var errs = msg.split(',');
                for (i = 0; i < errs.length; i++)
                {
                    $("#"+errs[i]).css("background-color", "#fcc"); 
                }
                disable = true;
            }
        }
    });

    if (disable) return false;
    else return true;
}
这已经不是第一次了。我想知道到底是什么导致101错误,以及如何避免/修复它

示例查询字符串?操作=验证日期和开始日期=2009年12月12日21:00:00和结束日期=2009年12月12日23:00:00和rsvp开始日期=2009年11月21日和rsvp结束日期=2009年11月30日`


此示例querystring包含空格。也许这就是你的问题?URL中不允许使用其他字符之间的空格;您应该在参数值上使用JavaScript转义函数,例如12/12/2009 23:00:00,它会将空格字符转换为%20。我认为这与我正在使用的测试服务器上的过期/无效服务器证书有关。当我在实时服务器上测试该功能时,它似乎100%工作。我会把它记下来的


谢谢

注意:这只是函数的一部分,我将其缩减为给我带来麻烦的部分,因此之前已设置了querystring和disable等变量。如您所述进行了编辑,下面是变量的声明:var querystring='action=validate_dates&event_start='+escapestart_date+'&event_end='+escapeend_date+'&rsvp_start='+escapersvp_start+'&rsvp_end='+escapersvp_end_date;这仍然返回相同的错误。不过还是个好主意。