首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请问一个关于后台加载xml文件的ajax有关问题

2012-01-13 
请教一个关于后台加载xml文件的ajax问题?大家帮我看看下面的代码哪里除了问题?个人觉得可能是LoadClassXml

请教一个关于后台加载xml文件的ajax问题?
大家帮我看看下面的代码哪里除了问题?个人觉得可能是LoadClassXml.aspx有问题,因为我把 <body   onload= "talktoServer( '../Action/LoadClassXml.aspx ', '-1 ');改成
<body   onload= "talktoServer( '../1.xml ', '-1 ');是可以正常工作的。
=====================================================
<script   language= "javascript "   type= "text/javascript ">
var   req;
var   sel1;
function   talktoServer(url,s1){
        sel1   =   s1;    
req   =   newXMLHTTPRequest();
var   callbackHandler   =   getReadyStateHandler;//注册客户端回调函数
req.onreadystatechange   =   callbackHandler;
req.open( "POST ",url,true);
req.setRequestHeader( "Content-Type ", "application/x-www-form-urlencoded ");
//对url进行编码
  req.send(null);

}
//创建一个xmlhttprequest对象
function   newXMLHTTPRequest(){
var   xmlreq   =   false;     //定义一个xmlhttprequest变量,初始值为false
if(window.XMLHTTPRequest)   {
xmlreq   =   new   XMLHTTPRequest();     //如果支持XMLHTTPRequest,则创建
}   else   if(window.ActiveXObject)   {
try   {
xmlreq   =   new   ActiveXObject( "Msxml2.XMLHTTP ");   //IE高版本中创建XMLHTTP对象
}   catch   (e1)   {                                                                   //创建第一个XMlHTTP失败
try   {
xmlreq   =   new   ActiveObject( "Microsoft.XMLHTTP ");   //IE低版本中创建XMLHTTP
}   catch   (e2)   {
}
}
}

return   xmlreq;
}
//服务器回调函数
function   getReadyStateHandler(){

if(req.readyState   ==4)   {   //已经加载
if(req.status   ==   200)   {   //返回成功
var   obj   =   document.getElementById( "class1 ");  
var   obj2   =   document.getElementById( "class2 ");
var   xmlDoc   =   req.responseXML;
var   node   =   xmlDoc.documentElement;//alert(node);node为空
                                   
alert(node);
if(sel1!= "-1 ")
{
    obj2.options.length   =   0;
    obj2.add(new   Option( "二级分类 ", "-1 "));
}
for(var   i=0;i <=node.childNodes.length-1;i++)
{
//添加一个选项  
        if(node.childNodes(i).childNodes(2).text== "0 "   &&   sel1== "-1 ")
        {
        obj.add(new   Option(node.childNodes(i).childNodes(1).text,node.childNodes(i).childNodes(0).text));  
        }
       
        if(sel1==node.childNodes(i).childNodes(2).text)
        {
              obj2.add(new   Option(node.childNodes(i).childNodes(1).text,node.childNodes(i).childNodes(0).text));
        }
}
}  

}
}
</script>
<body   onload= "talktoServer( '../Action/LoadClassXml.aspx ', '-1 ');


==========================================================
../Action/LoadClassXml.aspx '
===========================================================
<%@   Page   Language= "C# "   AutoEventWireup= "true "   CodeFile= "LoadClassXml.aspx.cs "   Inherits= "Action_LoadClassXml "   %>
<%@   Import   Namespace= "System.Xml "   %>
<script   runat= "server ">
        protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                XmlDocument   d   =   new   XmlDocument();
                d.Load(Server.MapPath( "../inc/xml/sale/message.xml "));
                Response.ContentType   =   "text/xml ";
                Response.Charset   =   "gb2312 ";
                Response.Write(d.OuterXml);
        }
</script>

[解决办法]
你用ie打开一下,那个生成xml的aspx文件...看看

问题可能有很多种,先看看有没有什么问题,再进行判断
[解决办法]
mark
[解决办法]
../Action/LoadClassXml.aspx
你的这个文件有问题!没有生成XML格式的界面!!不然不能用responseXML来获取值!!
[解决办法]
那真的应该是你这个页面的问题../Action/LoadClassXml.aspx '
你直接运行LoadClassXml.aspx这个页面看看能不能生成XML?

热点排行