zoukankan      html  css  js  c++  java
  • 使用XMLHttpRequest来获取xml文档

    使用XMLHttpRequest获取XML文档时候需要注意这个文档必须和自己在同一个域中,及同一个域名下或者同一个目录中,如果不是会出现拒绝访问错误。

    语法格式:XMLHttpRequest.open(请求方式,请求文件的URL,同步方式);

    方法有3个参数:

    请求方式:可以使GET,POST,HEAD中的一种;

    请求文件的URL,直接用相对路径即可;

    同步方式:表示请求发出后是等待回应(false)还是继续执行下面的代码(true)。

    js
     1 <script language="javascript" type="text/javascript">
     2         var xmlObj = false;
     3         //判断是否是IE浏览器
     4         if (window.ActiveXObject) {
     5             xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
     6         }
     7         else if (window.XMLHttpRequest) {
     8             //判断是否是火狐浏览器
     9             xmlObj = new XMLHttpRequest();
    10         }
    11         xmlObj.open('GET', 'rss.xml', true);
    12         //使用异步方式所以要在XMLHttpRequest对象的状态改变时做相应的处理
    13         xmlObj.onreadystatechange = function () {
    14             //判断XMLHttpRequest的状态,如果是4 ,继续处理
    15             if (xmlObj.readyState == 4) {
    16                 //需要判断返回状态时否是200
    17                 if (xmlObj.status == 200) {
    18                     DoXml();
    19                 }
    20             }
    21         }
    22         //发送请求,因为是GET,所以send的内容是null
    23         xmlObj.send(null);
    24         function DoXml() {
    25             var xmlDoc = xmlObj.responseXML;
    26             var arrayList = xmlDoc.getElementsByTagName("item");
    27             var html = "";
    28             for (var i = 0; i < arrayList.length; i++) {
    29                 html = html + "<a href='" + arrayList[i].getElementsByTagName("link")[0].firstChild.data + "'>" + arrayList[i].getElementsByTagName("title")[0].firstChild.data + "</a>"
    30                 html = html + arrayList[i].getElementsByTagName("pubDate")[0].firstChild.data + "<br/>";
    31             }
    32             document.getElementById("mydiv").innerHTML = html;
    33         }
    34     </script>
    readyState状态值 描述
    0 未初始化
    1 正在装载
    2 装载完毕
    3 交互中
    4 完成


     

    所以只有当readyState=4是,一个完整的服务器响应已经收到啦,函数才可以处理该响应。

    在这个函数中,首先要检查请求的状态,只有当一个完整的服务器响应已经收到,函数才可以处理该响应,XMLHttpRequest提供了readyState属性来对服务器响应进行判断。

  • 相关阅读:
    hdu4612 无向图中随意加入一条边后使桥的数量最少 / 无向图缩点+求树的直径
    Python 之 安装模块的多种方法
    开源项目Universal Image Loader for Android 说明文档 (1) 简单介绍
    IDEA下使用Jetty进行Debug模式调试
    离线安装Cloudera Manager5.3.4与CDH5.3.4(一)
    让你提前认识软件开发(38):完毕第一个新需求
    Windows App开发之经常使用控件与应用栏
    【剑指Offer学习】【面试题58:二叉树的下一个结点】
    【Win】编写简单的bat文件
    【Linux】MySQL解压版安装及允许远程访问
  • 原文地址:https://www.cnblogs.com/hfliyi/p/2623918.html
Copyright © 2011-2022 走看看