zoukankan      html  css  js  c++  java
  • 手写Ajax登陆页面

    1.建立登陆输入框,确定ID

    <table style=" 100%;">
            <tr>
                <td class="auto-style1">用户名:</td>
                <td>
                    <input id="txtName" type="text" /></td>
            </tr>
            <tr>
                <td class="auto-style1">&nbsp; 码:</td>
                <td>
                    <input id="txtPwd" type="password" /></td>
            </tr>
            <tr>
                <td class="auto-style1">验证码:</td>
                <td>
                    <input id="txtCal" type="text" /></td>
    
            </tr>
            <tr>
                <td class="auto-style1">&nbsp;</td>
                <td>
                    <input id="btnLogin" type="button" value="登 陆" /><input id="isAlways" type="checkbox" value="1" />是否两周内免登陆</td>
    
            </tr>
        </table>

    2.本人这里引用一个朋友写好的友好弹出框
    这里不复制了,普通的也可以,只说明下定义:var msgBox=new MsgBox();

    3.定义创建 XMLHttpRequest 异步对象,个人定义为了兼容浏览器,现在一般使用三方库,如jquey,等

    //使用浏览器兼容的方式创建 异步对象
    function createXhr() {
        var xhobj = false;
        try {
            xhobj = new ActiveXObject("Msxml2.XMLHTTP"); // ie msxml3.0+
        } catch (e) {
            try {
                xhobj = new ActiveXObject("Microsoft.XMLHTTP"); //ie msxml2.6
            } catch (e2) {
                xhobj = false;
            }
        }
        if (!xhobj && typeof XMLHttpRequest != 'undefined') {// Firefox, Opera 8.0+, Safari
            xhobj = new XMLHttpRequest();
        }
        return xhobj;
    }

    4.主要代码,

    var msgBox = false;
            var xhr = false;
    
            window.onload = function () {
                window.document.body.setAttribute("onselectstart", "return false");//设置网页内容不被选中
                var btn = gel("btnLogin");
                btn.onclick = doLogin;
                msgBox = new MsgBox(); //定义漂亮的弹出框,可以不使用
                xhr = createXhr();//创建异步对象
            }
            function doLogin() {
                var inputName = gel("txtName");//获取Id,gel 提前定义的
                var inputPwd = gel("txtPwd");
                if (validate(inputName, inputPwd)) {
                    xhr.open("post", "Login.ashx", true);  //请求地址,方式 post
                    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                    //  xhr.open("get", "Login.ashx", true);//请求地址,方式 get
                    // xhr.setReqeustHeader("If-Modified-Since", "0");
                    xhr.onreadystatechange = function () {
                        if (xhr.readyState == 4) {
                            if (xhr.status == 200) {
                                var res = xhr.responseText;
                                switch (res) {
                                    case "ok":
                                        {
                                            window.location = "manage/Index.aspx";
                                            break;
                                        }
                                    case "nook":
                                        {
                                            msgBox.showMsgErr("对不起,您的用户名或密码错误!: )");
                                            break;
                                        }
                                    case "err":
                                        {
                                            msgBox.showMsgErr("对不起,服务器繁忙,请稍后再试!: )");
                                            break;
                                        }
                                    default:
                                        {
                                            msgBox.showMsgErr("对不起,服务器繁忙,请稍后再试!: )");
                                        }
                                }
                            } else {
                                msgBox.showMsgErr("服务器繁忙~~~请稍后再试!");
                            }
                        }
                    }
                    //5.发送请求
                    xhr.send("tn=" + inputName.value + "&tp=" + inputPwd.value + "&isalways=" + gel("isAlways").checked);
                }
            }
            //验证用户名密码
            function validate(inputN, inputP) {
                if (inputN.value == "") {
                    msgBox.showMsgErr("用户名不能为空!");
                    inputN.focus();
                    return false;
                } else if (inputP.value == "") {
                    msgBox.showMsgInfo("用户密码不能为空!");
                    inputP.focus();
                    return false;
                } else {
                    return true;
                }
            }

     5.jquery的ajax请求,                                                            

    $.ajax({
            type: "post",
            url: URL.publicTplUrl,
            dataType: "json",
            data: json object,
            success: function (result) {
                //封装返回数据
                console.log(result);
            },
            beforeSend: function () {
                //手动控制遮罩       
            },
            complete: function (xhr, err, e) {
                //关闭遮罩
            }
        });
    转载请注明出处,感谢。
    作者:李宏旭
    阅罢此文,如果您觉得本文不错并有所收获,请【打赏】或【推荐】,也可【评论】留下您的问题或建议与我交流。
    你的支持是我不断创作和分享的不竭动力!
  • 相关阅读:
    golang/windows如何删除只读属性文件
    golang/TLS 采坑
    gsweb —— 理解HTTP协议
    gsweb —— 自己动手用golang写WEB框架
    Scala冒泡排序、快排、归并
    Hadoop自动化部署脚本
    大数据学习笔记
    vim键盘图
    什么是回调或高级函数?
    使用CSS表达式去除超链接的虚框的一些方法
  • 原文地址:https://www.cnblogs.com/bjlhx/p/ajax.html
Copyright © 2011-2022 走看看