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

  • 相关阅读:
    git
    composer
    laravel saas
    算法模板-01背包
    GMP-C/C++(大数库)使用方法
    算法模板-容斥原理
    算法模板-欧拉函数
    算法模板-素数判断/素数筛法
    算法模板-质因数分解
    算法模板-快速幂取模
  • 原文地址:https://www.cnblogs.com/hfliyi/p/2623918.html
Copyright © 2011-2022 走看看