• 使用XMLHttpRequest实现AJAX


    一、介绍

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

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

    如图所示:

    AjaxDemo

    二、前端准备

    1.页面上的HTML元素

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

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

    2.Javascript代码

    /*

    *  Description:原生态Javascript实现的Ajax

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

    *  Author: FrankFan

    *  Date2012-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以外的浏览器XMLHttpRequestwindow的一个子对象

            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.

  • 相关阅读:
    The Stanford Natural Language Processing Group
    HTTP和Socket
    数据挖掘之R与SQL
    redis运维的一些知识点
    ICTCLAS2011免费发布
    异步IO一定更好吗?
    试用wincvs2.0
    本地访问服务器上的wamp
    如何解决wamp中apache外部IP访问问题
    高级设置电脑系统windows7防火墙出错代码0×6D9原因与解决技巧
  • 原文地址:https://www.cnblogs.com/fanyong/p/2633906.html
Copyright © 2020-2023  润新知