我有一个使用普通旧JS获取请求的函数。
function get(url,funct){
var xmlhttpget = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xmlhttpget.onreadystatechange=function(){
if (xmlhttpget.readyState==4 && xmlhttpget.status==200){
funct(xmlhttpget.responseText);
}
}
xmlhttpget.open("GET",url,true);
xmlhttpget.send();
}
我这样用:
get(url,function(resp){window.alert(resp);});
当我的回调函数停止工作时,我将get()
函数修改为以下内容以进行调试:
function get(url,funct){
var xmlhttpget = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xmlhttpget.onreadystatechange=function(){
window.alert("ready state: "+xmlhttpget.readyState+" // status: "+xmlhttpget.status);
if (xmlhttpget.readyState==4 && xmlhttpget.status==200){
window.alert("responded...");
funct(xmlhttpget.responseText);
}
}
window.alert(url);
xmlhttpget.open("GET",url,true);
xmlhttpget.send();
}
有了这个,我发现,在每个readystate更改期间,readystate将从1进展到2到4,但状态始终保持为0,因此我的回调从未被调用,但是,当我将提醒的URL复制到浏览器时工作正常。
发生了什么?我的浏览器是否缓存了该页面?我该如何解决它(用php设置所请求页面上的特定标题?)?
哦,不确定这是否相关,但是调用该函数的页面位于其父文档包含相同JavaScript文件的框架内。
答案 0 :(得分:0)
尝试打印对象的statusText
。您可能会遇到浏览器安全策略。