昨天写了一段代码,关于ajax的,一直没有取到从另一个页面response出来的XML值。

昨天写了一段代码,关于ajax的,一直没有取到从另一个页面response出来的XML值。
哎,今天上午弄了一个上午,终于知道为什么了,原来是我没有设置Response.ContentType=("text/xml;charset=UTF-8");输出的是“text/html”格式的,所以我老是出不到responseXML的值,在输出前面加上Response.ContentType=("text/xml;charset=UTF-8");就可以了。呵呵。。。兴奋啊。。。
贴出部分code:
 后台方法:
public void getxml()
  {
   System.Text.StringBuilder sb=new System.Text.StringBuilder();
   sb.Append("<?xml version=/"1.0/"?>");
   sb.Append("<CN>");
   for(int i=0;i<10;i++)
   {
    sb.Append("<china sex='");
    if(i%2==0)
    {
     sb.Append("1");
    }
    else
    {
     sb.Append("2");
    }
    sb.Append("' age='");
    sb.Append(i);
    sb.Append("'/>");
   }
   sb.Append("</CN>");
   Response.ContentType=("text/xml;charset=UTF-8");
   Response.Write(sb.ToString());
  }

前台:
function updatePage() { try { if(xmlhttp.readyState==4) { if(xmlhttp.status==200)
{ debugger //设置断点调试
var xml=xmlhttp.responseXML;
}
+xml+" "; document.write(ss);*/ var a=xml.getElementsByTagName("china"); var Mynode=xml.lastChild; for(var i=0;i
希望和更多的人交流ajax技术,
QQ:5171031
MSN:wgale@126.com

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/JavaScript"> alimama_pid="mm_10029522_914430_1885897"; alimama_titlecolor="0000FF"; alimama_descolor ="000000"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="E6E6E6"; alimama_linkcolor="008000"; alimama_bottomcolor="FFFFFF"; alimama_anglesize="0"; alimama_bgpic="0"; alimama_icon="0"; alimama_sizecode="12"; alimama_width=468; alimama_height=60; alimama_type=2; </script> <script src="http://a.alimama.cn/inf.js" type=text/javascript> </script>
posted on 2006-10-20 12:59 oo縼箻ㄗs.鋒 阅读(520) 评论(5)   编辑 收藏 所属分类: AJAX

FeedBack:
#1楼 
2007-06-28 11:18 | rain [未注册用户]
我也遇到了 这个问题,但是还是解决不了
代码如下:
StringBuilder sb = new StringBuilder();
sb.Append("<?xml version='1.0'?>");
sb.Append("<pictures>");
if (dt != null || dt.Rows.Count > 0)
{
sb.Append("<item>");
foreach (DataRow row in dt.Rows)
{
sb.Append("<name>" + row["ALBUM_NAME"] + "</name><url>" + row["ALBUM_URL"] + "</url><description>" + row["ALBUM_DESC"] + "</description>");
}
sb.Append("</item>");
}
sb.Append("</pictrues");

Response.ContentType = ("text/xml;charset=UTF-8");
Response.Write(sb.ToString());
是什么原因?
   回复   引用     
#2楼 
2007-06-29 14:19 | 呵呵 [未注册用户]
@rain
编码问题呗
   回复   引用     
#3楼 
2007-07-03 10:24 | rain [未注册用户]
@呵呵
编码没问题,我用responseText可以接收到xml的数据
????
   回复   引用     
#4楼 
2007-07-04 14:47 | 呵呵 [未注册用户]
@rain
汗。。。
responseText出来的是字符串。
responseXML出来的可以直接转换成XMLDocument
   回复   引用     
#5楼 
2007-09-13 09:35 | wgale025 [未注册用户]
--引用--------------------------------------------------
rain: 我也遇到了 这个问题,但是还是解决不了
代码如下:
StringBuilder sb = new StringBuilder();
sb.Append(&quot;&lt;?xml version='1.0'?&gt;&quot;);
sb.Append(&quot;&lt;pictures&gt;&quot;);
if (dt != null || dt.Rows.Count &gt; 0)
{
sb.Append(&quot;&lt;item&gt;&quot;);
foreach (DataRow row in dt.Rows)
{
sb.Append(&quot;&lt;name&gt;&quot; + row[&quot;ALBUM_NAME&quot;] + &quot;&lt;/name&gt;&lt;url&gt;&quot; + row[&quot;ALBUM_URL&quot;] + &quot;&lt;/url&gt;&lt;description&gt;&quot; + row[&quot;ALBUM_DESC&quot;] + &quot;&lt;/description&gt;&quot;);
}
sb.Append(&quot;&lt;/item&gt;&quot;);
}
sb.Append(&quot;&lt;/pictrues&quot;);

Response.ContentType = (&quot;text/xml;charset=UTF-8&quot;);
Response.Write(sb.ToString());
是什么原因?
--------------------------------------------------------

把你的这行改成:sb.Append("<?xml version='1.0'?>"); 换成这样的:
sb.Append("<?xml version=/"1.0/"?>"); 这样就OK了.要知道XML里面实体才有单引号的吧.你直接用单引号,XML好像不识别吧...
   回复   引用     
<script type="text/javascript"> function pageLoad() { Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(handleInitializeRequest); //Sys.WebForms.PageRequestManager.getInstance().add_endRequest(handleEndRequest); } function handleInitializeRequest(sender, args) { var prm = Sys.WebForms.PageRequestManager.getInstance(); var eid = args.get_postBackElement().id; /*if (eid.indexOf("DeleteLink")>0) { args.get_postBackElement().innerHTML = " 正在删除..."; } else */ if (eid.indexOf("btnSubmit")>0) { document.getElementById("AjaxHolder_PostComment_ltSubmitMsg").innerHTML="正在提交..."; document.getElementById("AjaxHolder_PostComment_btnSubmit").disabled = true; } else if(eid.indexOf("refreshList")>0) { document.getElementById("AjaxHolder_PostComment_refreshList").innerHTML=" 正在刷新..."; } } function TempSave(ElementID) { try { CommentsPersistDiv.setAttribute("CommentContent",document.getElementById(ElementID).value); CommentsPersistDiv.save("CommentXMLStore"); } catch(ex) { } } function Restore(ElementID) { CommentsPersistDiv.load("CommentXMLStore"); document.getElementById(ElementID).value=CommentsPersistDiv.getAttribute("CommentContent"); } </script>

标题
姓名
主页
Email(博主才能看到)
验证码*  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-02-27 14:44 编辑过


相关链接:<script type="text/javascript"> var title = document.title; document.write("
"); document.write("
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值