首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • ajax跨区域访问xml文件问题,急!!!!在线等待中。。。。 [已结帖,结帖人:lioushuei]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lioushuei
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-11-21 16:58:57 楼主
    由于跨区域 我自己写了个servlet :
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/xml");
    response.setHeader("Pragma", "No-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);
    // String path=request.getParameter("path");
    PrintWriter out = response.getWriter();
    //read外网文件

      try { 
          URL url = new URL("http://news.163.com/special/00011K6L/rss_newstop.xml"); 
          HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
          BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "GBK")); 
          StringBuffer b = new StringBuffer(); 
          String line; 
          while ((line = reader.readLine()) != null) { 
            b.append(line); 
            // b.append("\r\n"); // 默认这里没有保存换行,而是让所有的字符出现在一行里面。如果需
          } 
          System.out.println(b.toString());
          out.write(b.toString());
    //       reader.close();
      } catch (Exception ex) { 
          out.write("读取数据错误");
        }
    这个类已经可以打印出我要的那个xml 文件。 System.out.println(b.toString());

    ajax 代码
    function feedlist(xmldoc,num,divid) {
    //xmldoc 是 xmlHttp.responseXML 上面得到传递过来的
    var out=""
    alert(oXmlDoc.documentElement);
    if (xmldoc == null || oXmlDoc.documentElement == null ) {
            errorText = "\u6570\u636e\u8bfb\u53d6\u51fa\u9519\uff01";
            document.getElementById(divid).innerHTML = errorText;
            } else {
    for(i=0;i <10;i++){
    var xmltitle = xmldoc.getElementsByTagName("item").......
    var xmllink = xmldoc.getElementsByTagName("item")[i]........
    out=out+ " <a href=" + xmllink +">" + xmltitle + " </a> <br>";
    }
    document.getElementById(divid).innerHTML = out; 
    }
    }
    问题是  alert(oXmlDoc.documentElement);  我出来的总是为空 null。
    如果 我调用
    function showtext(divid)
    {
    document.getElementById(divid).innerHTML =xmlHttp.responseText;
    }
    这个方法 却可以得到字符串内容但是我是我想显示的那种格式
    还有我测试了下 我把 System.out.println(b.toString()); 这句打印出来的话,复制保存到本地text.xml,ajax 直接调用这个文件
    xmlHttp.open("GET", 'text.xml' true); 却可以正常的显示 ........
    郁闷 ,action  里面  out.write(b.toString());写出来的怎么显示不出来??

    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lioushuei
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-21 17:14:521楼 得分:0
    csdn 上传说的大侠呢??????????
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • neo_yoho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-21 17:22:072楼 得分:0
    在xmlHttp.send之前 设置
    xmlHttp.setRequestHeader("Content-Type","text/xml; charset=utf-8");
    这个了没啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • android2008
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-21 17:27:503楼 得分:0
    不懂,帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • myvicy
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

      3

    发表于:2008-11-21 17:31:174楼 得分:0
    js里处理xml不是你那样子的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • polimo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-21 17:32:445楼 得分:0
    先定义
    var req;
    if(window.XMLHttpRequest){
      req=new XMLHttpRequest();
    }else if(window.ActiveXObject){
      req=new ActiveXObject("Microsoft.XMLHTTP");
    }
    var xmlDoc=req.responseXML.documentElement;//获得返回的 xml文档

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lioushuei
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-21 17:43:006楼 得分:0
    4楼的 可是我解析本地的xml文件已经出来了啊。可能是我部分代码省略了吧?我打了.....省略号
    5楼的你说的那个 我写了 只是那个没贴出来 ,我怕贴的代码长 ,人家不愿意看 。
    3 楼的谢谢 。我马上试下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lioushuei
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-21 17:59:027楼 得分:0
    3楼的不行 ,我试了
    唉 无奈 无语 无助 。
    我估计问题在servlet的原因
    因为我解析 本地的xml 文件可以的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • neo_yoho
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-21 19:52:368楼 得分:100

    response.setCharacterEncoding("GBK");
    在试试
    好像是编码的事
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lioushuei
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-24 10:07:139楼 得分:0
    我晕 ,好了 跪谢啊 。。。。。。。
    结贴!
    修改 删除 举报 引用 回复