AJAX中的XmlHttpRequest

提到AJAX,就不得不说到XmlHttpRequest,他可是AJAX得核心,现在很多浏览器都支持XmlHttpRequest,主要有两类。一类是以微软得IE为代表:他是以ACTIVEX组件得形式实现了XmlHttpRequest.,另一类FIREFOX为代表,他是以原生得JAVASCRIT形式提供的(至于真正是怎样的区别,我不知道,希望知道的指教下)。所以在创建XmlHttpRequest同时,经常要检验是哪种类型的浏览器。 if(window.XMLHttpRequest)
                 { //Mozilla 浏览器
                    http_request = new XMLHttpRequest();
                    if (http_request.overrideMimeType)
                     {//设置MiME类别
                        http_request.overrideMimeType('text/xml');
                    }
                }
                else if (window.ActiveXObject)
                 { // IE浏览器
                    try
                    {
                        http_request = new ActiveXObject("Msxml2.XMLHTTP");
                    } catch (e)
                    {
                        try {
                                http_request = new ActiveXObject("Microsoft.XMLHTTP");
                            } catch (e)
                             {}
                    }
                }以上就是要判断是哪种类型的浏览器,但也许有人要问IE浏览器哪里为什么还有个判断,那是因为在IE5以前和后用的方式不一样。
   还有两个重要的函数是:
      http_request.open("GET", url, true); // 确定发送请求的方式和URL以及是否同步执行下段代码
 // 确定发送请求的方式和URL以及是否同步执行下段代码,第一个参数是请求类型:POST,GET,PUT。
第二个参数是传递的地址。第三个参数是决定是否要以异步的形式传送,默认为TRUE
和 http_request.send(null);他是吧请求发送给服务器。
完整的HTML代码 <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="ajax.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>WebForm1</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
        <script language="javascript">
                var http_request = false;
                function send_request(url) {//初始化、指定处理函数、发送请求的函数
                http_request = false;
                /**alert("1");
                //开始初始化XMLHttpRequest对象
                if(window.XMLHttpRequest)
                 { //Mozilla 浏览器
                    http_request = new XMLHttpRequest();
                    if (http_request.overrideMimeType)
                     {//设置MiME类别
                        http_request.overrideMimeType('text/xml');
                    }
                }
                else if (window.ActiveXObject)
                 { // IE浏览器
                    try
                    {
                        http_request = new ActiveXObject("Msxml2.XMLHTTP");
                    } catch (e)
                    {
                        try {
                                http_request = new ActiveXObject("Microsoft.XMLHTTP");
                            } catch (e)
                             {}
                    }
                }
                if (!http_request) { // 异常,创建对象实例失败
                    window.alert("不能创建XMLHttpRequest对象实例.");
                    return false;
                }
                http_request.onreadystatechange = processRequest;
                // 确定发送请求的方式和URL以及是否同步执行下段代码
                http_request.open("GET", url, true);
                http_request.send(null);
    }
    // 处理返回信息的函数
    function processRequest() {
        if (http_request.readyState == 4) { // 判断对象状态
            if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
                alert(http_request.responseText);
            } else { //页面不正常
                alert("您所请求的页面有异常。");
            }
        }
    }
   
    function userCheck() {
        var f = document.form1;
        var username = f.username.value;
        if(username=="") {
            window.alert("用户名不能为空。");
            f.username.focus();
            return false;
        }
        else {
        alert(username);
            send_request('Back.aspx?username='+username);
        }
    }
        </script>
        <link href="css/style.css" rel="stylesheet" type="text/css">
    </HEAD>
    <body>
        <form name="form1" action="" method="post">
            用户名:<input type="text" name="username" value="">&nbsp; <input type="button" name="check" value="唯一性检查" onClick="userCheck()">
            <input type="submit" name="submit" value="提交">
        </form>
        <!--span style="cursor: pointer; text-decoration: underline" οnclick="send_request('2.jsp?username=educhina')">Send a request</span-->
    </body>
</HTML>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值