您的位置:首页 > 理论基础 > 计算机网络

使用XMLHttpRequest实现AJAX

2012-08-11 18:59 811 查看

一、介绍

本文介绍利用原生态Javascript打造Ajax的全过程。

达到的效果是:点击页面上的按钮,通过传统的Javascript的Ajax方式从服务端取回一个"Hello Ajax!"的字符串显示在页面上。

如图所示:





二、前端准备

1.页面上的HTML元素

<input type="button" value="Ajax提交" onclick="Ajax();" />

<div id="resText"></div>

2.Javascript代码

/*

*  Description:原生态Javascript实现的Ajax

*  效果:点击按钮通过传统Javascript的Ajax方式从服务端取回一个"Hello Ajax!"的字符串显示在页面上

*  Author: FrankFan

*  Date:2012-8-11

*/

 

// 声明一个空对象用来装入XMLHttpRequest

var xmlHttpReq = null;

 

//该函数用来异步获取信息

function Ajax() {

    // 给xmlHttpReq对象赋值

    if (window.ActiveXObject) { // IE5 IE6是以ActiveXObject的形式引入XMLHttpRequest对象的

        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");

    }

    else if (window.XMLHttpRequest) {   //除IE5 IE6以外的浏览器XMLHttpRequest是window的一个子对象

        xmlHttpReq = new XMLHttpRequest(); //实例化一个XMLHttpRequest对象

    }

    if (!xmlHttpReq) {

        alert("创建xmlhttp对象异常!");

        return false;

    }

 

    //实例化成功后,用open方法初始化XMLHttpRequest对象    xmlHttpReq.open("GET", "Server.ashx", true); //调用open方法并采用异步方式

    xmlHttpReq.onreadystatechange = RequestCallBack; // 设置回调函数

 

    xmlHttpReq.send(); //最后才正式发送请求

}

 

// 请求的回调函数

function RequestCallBack() {

    if (xmlHttpReq.readyState == 4) {

        if (xmlHttpReq.status == 200) {

            document.getElementById("resText").innerHTML = xmlHttpReq.responseText;

        }

        else {

            alert("Ajax服务器返回错误!");

        }

    }

}

三、服务端

本例是将xmlHttpRequest请求提交到了一般处理文件Server.ashx,代码如下:

namespace AjaxDemo

{

    public class Server : IHttpHandler

    {

 

        public void ProcessRequest(HttpContext context)

        {

            context.Response.ContentType = "text/plain";

            context.Response.Write("Hello Ajax!");

        }

 

        public bool IsReusable

        {

            get

            {

                return false;

            }

        }

    }

}

Game Over.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: