AJAX实例:XHR的入门

AJAX实例:XHR的入门

XHR对象的使用是 AJAX 的核心。为了学习的方便,在编写代码过程中没有用服务端开发的部分,Web前端开发与服务端开发的结合处在于“响应数据”(如XML)。 XML部分我直接写好已放在服务器了,重点不在服务端程序如何去从数据库调出相应的数据的内容。

一个很简单的示例:点击“查看”按钮,用户名(username)显示在网页中。

HTML代码:

1 <label>用户名</label>
2 <span>username 值</span>
3 <a href="#" οnclick="ajaxread('3.xml', ''); return false;">查看</a>

XML代码:

1 <?xml version="1.0" encoding="gb2312"?>
2 <root>
3     <username>
4         george wing
5     </username>
6 </root>

js代码:

1function ajaxread(file, postData) {
2    var req = createXMLHTTPObject();
3    if(!req) return;
4    req.onreadystatechange = function() {
5        if (req.readyState != 4) return;
6        if (req.status != 200 && req.status != 304) {
7            alert('HTTP error ' + req.status);
8            return;
9        }
10        
11        updateobj('span', req.responseXML.getElementsByTagName('username')[0].firstChild.nodeValue);
12    }
13    req.open('GET', file, true);
14    req.setRequestHeader('User-Agent','XMLHTTP/1.0');
15    if (req.readyState == 4) return;
16    req.send(postData);
17}
18function updateobj(obj, data) {
19    document.getElementsByTagName(obj)[0].firstChild.nodeValue = data;
20}
21
22var XMLHttpFactories = [
23    function() {return new XMLHttpRequest()},
24    function () {return new ActiveXObject("Msxml2.XMLHTTP")},
25    function () {return new ActiveXObject("Msxml3.XMLHTTP")},
26    function () {return new ActiveXObject("Microsoft.XMLHTTP")},
27];
28
29function createXMLHTTPObject() {
30    var xmlhttp = false;
31    for(i=0; i<XMLHttpFactories.length; i++) {
32        try {
33            xmlhttp = XMLHttpFactories[i]();
34        }
35        catch(e) {
36            continue;
37        }
38        break;
39    }
40    return xmlhttp;
41}

 

转载于:https://www.cnblogs.com/fyy-888/p/5302064.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值