我使用xmlhttprequest实现ajax,在IE6中没什么问题,但在IE7和firefox中都没有反应。哪位大侠帮忙看看问题出在哪?<script>function CreateXMLHTTP()
{
var xmlhttp_request = false;    
    try
    {        
        if( window.ActiveXObject )//IE
        {            
            for( var i = 5; i; i-- )
            {               
                try
                {                   
                    if( i == 2 )
                    {
                        xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" );                       
                    }
                    else
                    {
                        xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );    
                        xmlhttp_request.setRequestHeader("Content-Type","text/xml");
                        if((charSet != null) && (charSet != ""))
                        {
                            xmlhttp_request.setRequestHeader("Content-Type",charSet);   
                        }             
                    }
                    break;
                }               
                catch(e)
                {   
                    xmlhttp_request = false;              
                }          
            }       
        }
        else if( window.XMLHttpRequest )//FireFox
        {            
            xmlhttp_request = new XMLHttpRequest();           
            if (xmlhttp_request.overrideMimeType) 
            {                
                xmlhttp_request.overrideMimeType('text/xml');            
            }       
        }   
    }
    catch(e)
    {        
        xmlhttp_request = false;   
    }    
    return xmlhttp_request ;
}
var xmlhttp=CreateXMLHTTP();
function SendAjax(value)
{
    //通过post方式访问Receive.aspx页面
    xmlhttp.Open("post","Receive.aspx?value="+value,true);
    xmlhttp.onreadystatechange = GetValue;
    xmlhttp.send(null);
}var oDoc = createXMLDOM();
function GetValue()
{
    alert("haha");
    if(xmlhttp.ReadyState==4)
    {
        //获取页面返回结果。
        var result = xmlhttp.responsetext;
            oDoc.loadXML(rs);
    //获取table节点
    items=oDoc.selectNodes("/DocumentElement/Table");
    var list = document.getElementById("list");
    var heji = document.getElementById("heji");   
    var text="<ul id='buyul' class='shopping_content'>";
    var num = 0;
    var money = 0;
    var item = items.nextNode();
    while(item)
    {
        text+="<li class='shopping_content_all'><span class='shopping_ID_new'>"+item.selectSingleNode("name").nodeTypedValue+"</span>"
    +"<span class='shopping_amount_new'><input style='border:1px solid #999' class='shopping_sl_new' type=text size=1 maxlength=2 onblur='javascript:return resetbuy(this,"+item.selectSingleNode("id").nodeTypedValue+");' value='"+item.selectSingleNode("count").nodeTypedValue +"' /></span>"
    +"<span class='shopping_price_new'>"+item.selectSingleNode("price").nodeTypedValue+"</span><span class='shopping_DelImg' style='cursor:hand; ' onclick='javascript:DelPro("+ item.selectSingleNode("id").nodeTypedValue +");'><img src='img/shopping_del.gif' border='0' /></span></li>";
    num += parseInt(item.selectSingleNode("count").nodeTypedValue);
    money +=parseInt(item.selectSingleNode("count").nodeTypedValue) * parseFloat(item.selectSingleNode("price").nodeTypedValue);
    item=items.nextNode();
    }
    text+="</ul>";
    heji.innerHTML="<span>合计:</span><span>"+num+"份</span><span> "+money+"元</span>";
    list.innerHTML=text;
   }
}

解决方案 »

  1.   


    在firefox中。
    function SendAjax(value)
    {
        //通过post方式访问Receive.aspx页面
        xmlhttp.Open("post","Receive.aspx?value="+value,true);
       alert("wawa"); //这句代码都没有执行,,,为什么?
        xmlhttp.onreadystatechange = GetValue;
        xmlhttp.send(null);
    }
      

  2.   

    var xmlHttp;   
    function GetXmlHttpObject(handler)

        var objXmlHttp = null; 
        if (window.XMLHttpRequest){ objXmlHttp = new XMLHttpRequest(); objXmlHttp.onload = handler; } 
        else objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");      
        objXmlHttp.onreadystatechange = handler; 
        return objXmlHttp; 

    用这个吧
      

  3.   


    //换成这样了,还是没反应:
    function GetXmlHttpObject(handler)
    {
        var objXmlHttp = null;
        if (window.XMLHttpRequest){ objXmlHttp = new XMLHttpRequest(); objXmlHttp.onload = handler; }
        else objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");     
        objXmlHttp.onreadystatechange = handler;
        return objXmlHttp;

    function SendAjax(value)
    {
        xmlhttp=GetXmlHttpObject(GetValue);
        //通过post方式访问Receive.aspx页面
        xmlhttp.Open("GET","Receive.aspx?value="+value,true);
        xmlhttp.send(null);
    }
      

  4.   

    不管使用什么方式创建xmlhttprequest对象。在open后面加上alert("asss");,都无法弹出提示哦。。这说明open这个地方有问题。但不知道是什么问题。
      

  5.   

    奇怪了,open前能执行吗?是不是别的地方有语法错误?
      

  6.   

    用jquery吧,省时省力,居家旅行,开发程序,必备脚本