我正在使用ajax对某些日期进行验证(基本上确保第一个日期/时间发生在第二个日期/时间之前,并且都不是空白的。)
如果我将async设置为true,则可以正常工作,但我得到了误报,因为它与表单验证的其余部分同时工作。如果我将其设置为false,那么我会遇到“XMLHttpRequest Exception 101”的错误。
我只是想知道导致此错误的原因以及如何摆脱它(同时将异步设置为false)。我还有其他选择来解决它,但我宁愿知道它是什么以及如何解决它。
示例查询字符串?action=validate_dates&start_date=12/12/2009 21:00:00&end_date=12/12/2009 23:00:00&rsvp_start=11/21/2009&rsvp_end=11/30/2009
将返回“”或逗号分隔的字段列表,这些字段应标记为错误。
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错误,以及如何避免它/修复它。
答案 0 :(得分:0)
示例querystring?action = validate_dates&amp; start_date = 12/12/2009 21:00:00&amp; end_date = 12/12/2009 23:00:00&amp; rsvp_start = 11/21/2009&amp; rsvp_end = 11/30 / 2009`
此示例查询字符串包含空格。也许这是你的问题? URL中不允许使用空格(以及其他字符);您应该对参数值使用JavaScript escape()
函数(例如12/12/2009 23:00:00
),这会将空格字符转换为%20
答案 1 :(得分:0)
我认为它与我正在使用的测试服务器上的过期/无效服务器证书有关。当我在实时服务器上测试它时,该功能似乎100%工作。我会继续并将其归结为此。
由于