zoukankan      html  css  js  c++  java
  • 使用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.

  • 相关阅读:
    git clone 慢,使用镜像
    Mysql 插入 path 插入不进去值
    os.walk 获取文件夹下所有的文件
    Manjaro安装后你需要这样做(仅有网址)
    Mysql 查询优化
    pandas df.to_csv 可保存为 txt 类型 index 设置索引 header 列名 sep 使用什么进行分隔
    pandas pd.to_markdown() 转换为 Markdown pd.to_latex() 转换为 latex
    pandas 读取txt seq分隔符类型 engine指定引擎 header 不将第一行作为列名
    pandas 读取文件时 header设置列名 index_col 设置索引 usecols 读取哪几列 parse_dates 将哪一列设置为时间类型 nrows 读取数据行数
    numpy cumprod 累乘 cumsum 累加 diff 和前一个元素做差值
  • 原文地址:https://www.cnblogs.com/fanyong/p/2633906.html
Copyright © 2011-2022 走看看