我对IE11和ajax有一个奇怪的错误。对于我使用下面的代码提出的几乎所有请求,一切都很好,但是当我尝试与复制+粘贴方法一起使用时,它返回一个拒绝访问错误。总结一下
这是AJAX代码:
function ajaxRequest(requestName,responseFunction,parameters) {
var xmlhttp;
if (requestName.length==0) return;
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
if(xmlhttp.responseText == 'Error') alert('Error processing request. Please refresh the page and try again');
else if(xmlhttp.responseText != '') eval(responseFunction+"('"+xmlhttp.responseText+"')");
}
}
var now = new Date();
var url = "control/ajax.php?request="+requestName+"¶meters="+parameters+"×tamp"+now;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
失败的一个例子,设置了以下变量:
requestName:“save_marksheet_mark” responseFunction:“update_save_marksheet_mark” 参数:[60962,1284,5]
这段代码有问题吗?在特殊情况下,IE11是否会在此代码中引发错误?
答案 0 :(得分:9)
这个问题似乎得到了很多观点,所以如果有人想知道,我通过在原始AJAX调用上使用setTimeout()解决了这个问题。 E.g:
setTimeout(function() {
ajaxRequest('save_mark','save_mark_completed',[60962,1284,5])
}, 1);
我假设它是IE中的某种错误。只需1毫秒就可以了!
答案 1 :(得分:0)
setTimeout(function() {
ajaxRequest('save_mark','save_mark_completed',[60962,1284,5])
}, 1);
这对页面加载后的第一个呼叫确实有效,但后来的呼叫又开始显示访问被拒绝错误