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