var xhr;
function getXHR() 
{
 try
    {
   // Firefox, Opera 8.0+, Safari
    xhr=new XMLHttpRequest();
    }
 catch (e)
    {
  // Internet Explorer
   try
      {
      xhr=new ActiveXObject("Msxml2.XMLHTTP");
      }
   catch (e)
      {      try
         {
         xhr=new ActiveXObject("Microsoft.XMLHTTP");
         }
      catch (e)
         {
         alert("您的浏览器不支持AJAX!");
         return false;
         }
      }

if(!xhr&&typeof XMLHttpRequest!='undefined') 
{
xhr=new XMLHttpRequest();
}
return xhr;
}
function openXHR(method,url,callback) {
getXHR();
xhr.open(method,url);
xhr.onreadystatechange=function() {
if(xhr.readyState!=4)return;
callback(xhr);
}
xhr.send(null);
}
function loadXML(method,url,callback) {
getXHR();
xhr.open(method,url);
xhr.setRequestHeader("Content-Type","text/xml");
xhr.setRequestHeader("Content-Type","GBK");
xhr.onreadystatechange=function() {
if(xhr.readyState!=4)return;
callback(xhr);
}
xhr.send(null);
}function loadXML(method,url,callback) {
getXHR();
xhr.open(method,url);
xhr.setRequestHeader("Content-Type","text/xml");
xhr.setRequestHeader("Content-Type","GBK");
xhr.onreadystatechange=function() {
if(xhr.readyState!=4)return;
callback(xhr);
}
xhr.send(null);
}var beg=window.location.search.indexOf('=');
var comment_id =window.location.search.substring(beg+1);
document.title=comment_id+"的博客";
//document.getElementById("toptitle").innerHTML=comment_id+"的博客";
function loadDom()
{
//loadXML("get","getall.aspx?name="+comment_id+"&sid="+Math.random(),getlist);
if(comment_id=="")
{
document.getElementById("blog").innerHTML = '没有文章';
return false;
}
else
{
loadXML("get","getfirst.ashx?name="+comment_id+"&sid="+Math.random(),getlistfirst);
return false;
}

}
function getlistfirst(xmlDom)
{  
var dis=document.getElementById("blog");

var node=xmlDom.responseXML.getElementsByTagName("dataset");//获得pllist节点集合
var cont="";
   for (var i=0;i<node.length;i++)
   {
   var u=node[i].childNodes(0).text;//获得节点第一个子节点的值,这里指呢称
var d=node[i].childNodes(1).text; //获得节点第二个子节点的值,这里指时间
var co=node[i].childNodes(2).text; //获得节点第三个子节点的值,这里指内容
var idnub=node[i].childNodes(3).text; //获得节点第四个子节点的值,这里指新闻ID 
var bt=node[i].childNodes(4).text; //获得节点第四个子节点的值,这里指新闻ID 
var cid=node[i].childNodes(5).text; //获得节点第四个子节点的值,这里指新闻ID 
cont+='<table><tr><td style="width: 580px;height:35px" background="../images/1.bmp">&nbsp;&nbsp;<span style="TEXT-DECORATION: underline;cursor:hand;color:white" onclick="getarticle('+idnub+','+cid+')">'+bt+'</span></td></tr><tr><td style="width: 580px">'+co+'<span style="TEXT-DECORATION: underline;cursor:hand;color:#0000ff" onclick="getarticle('+idnub+','+cid+')">查看全文</span></td></tr><tr><td style="width: 580px"><div align=right>作者:'+u+' 添加时间:'+d+'</div></td></tr></table>'; 
   }
   
   cont+="<img src='../images/body_bg.jpg' width='580' />";
   cont+="<div align=right><font size=5><a href='#' onclick='getartall()'>更多</a></font></div>";
   dis.innerHTML=cont;
   return false;
}
function loadplist() 
{
loadXML("get","getphotolist.ashx?name="+comment_id+"",getresult1);
return false;
}
function getresult1(xmlDom)
{
document.getElementById("photo").innerHTML=xmlDom.responseText;
return false;
}html code
//
 <div> <script type="text/javascript">loadDom(); </script> </div> <div> <script type="text/javascript">loadplist(); </script> </div>).

解决方案 »

  1.   

    我估计是callback(xhr);这句话的问题,这里的xhr是全局变量,那就是说什么时候调用,使用的都是全局变量xhr那么问题就来的,你发了第一个请求,这里的xhr是对象1,当你发送第二个请求的时候,就是loadplist(),新建了一个xmlhttprequest对象,那就是对象2,当第一个请求的返回的时候,回调函数(getlistfirst)用的xhr是对象2,不管这时候第二个请求返回没有,getlistfirst执行都会出错。你可以试试下面这样子修改,function loadXML(method,url,callback) {
    var xhr  = getXHR();    //使用局部变量
    xhr.open(method,url);
    xhr.setRequestHeader("Content-Type","text/xml");
    xhr.setRequestHeader("Content-Type","GBK");
    xhr.onreadystatechange=function() {
    if(xhr.readyState!=4)return;
    callback(xhr);
    }
    xhr.send(null);
    }openXHR也是这样子修改