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属性来对服务器响应进行判断。

  • 相关阅读:
    (八)CXF之用spring添加拦截器
    (七)CXF之与spring整合发布web服务
    (六)CXF之自定义拦截器
    借鉴mini2440的usb-wifi工具集在Beagleboard上移植无线网卡
    ubuntu设置网络
    mysql优化学习
    java日期转化
    Navicat使用
    (转载)windows下mysql忘记密码
    java读取文件乱码
  • 原文地址:https://www.cnblogs.com/hfliyi/p/2623918.html
Copyright © 2011-2022 走看看