function download() {
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{ //alert(xmlhttp.readyState);
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert (xmlhttp.responseText);
}
}
xmlhttp.open("GET","import.php?file="+document.getElementById('uploaded_file').value,false);
xmlhttp.send();
// location.reload(true);
}
如果我发出警报并监视xmlhttp.readyState
,那么它会显示我的状态确实变为4并且它确实进入了if语句,如果我没有用警报监视它,那么它就不会进入if语句,但我知道import.php正在工作,因为我可以看到数据库中的更改。我不知道发生了什么......任何人都可以帮忙。
由于
答案 0 :(得分:1)
这是因为location.reload(true);
正在重新加载页面,而不是等待xmlhttp
调用完成
更新:
尝试在xmlhttp.open
调用true
来自文档:
是否有布尔指示符 调用是异步的。默认是 为真(呼叫立即返回)。 如果设置为True,请附加 onreadystatechange属性回调 这样你就可以告诉发送的时间 电话已经完成。
http://msdn.microsoft.com/en-us/library/ms757849%28v=vs.85%29.aspx