AJAX

异步的JavaScript和xlm技术

提交请求只局部刷新——局部刷新技术

AJAX和核心技术

1)JavaScript技术

  作用:a 发送请求

     b dom编程更新页面

2)服务器不再响应整个页面,而响应数据

  数据格式分3种:字符串    XML  JSON

  json 格式 :[{name:"张三",age:30 }]

3)xmlHttpRequest 对象   浏览器提供的

  作用:发送请求

AJAX原理

1)在JS函数中 创建xmlhttprequest对象

2)使用对象发送请求(请求servlet,并传递数据),同时告知服务器回调函数是哪个

3)回调函数:接收服务器响应的数据,更新页面

//创建XmlHttpRequest
function createXmlHttpRequest(){
    var xhr;
    try {
        xhr = new XMLHttpRequest();
    } catch (e) {
        try {
            //IE6以下的
            xhr = new ActiveXObject("MSXML2.XMLHTTP");
        } catch (e) {
            //IE6及以上的
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xhr;
}

<script type="text/javascript">
    function send() {
        var xhr = createXmlHttpRequest();        
        //构建请求地址
        var val = document.getElementsByName("empno")[0].value;
        var url = "checkEmp?empno="+val;
        //设置请求初始化
        xhr.open("get",url,true);
        //发送请求
        xhr.send();
        
        //匿名函数,回调函数,获得响应
        xhr.onreadystatechange = function(){
            //回调函数,接受响应数据,局部刷新。dom编程刷新
            //此步代表响应完毕,网络状态正常
            if(xhr.readyState == 4 && xhr.status == 200){
                //获得响应的数据
                var res = xhr.responseText;
                //获得要输出的区域
                var s = document.getElementById("sno");
                if(res == "y"){
                    s.innerText = "编号可用";
                    s.style.color = "green";
                    return true;
                }else{
                    s.innerText = "编号已存在";
                    //alert("编号存在");
                    s.style.color = "red";
                    return false;
                }
            }
        }
    }

</script>

 POST提交数据

function addEmp(){
        var xhr = createXmlHttpRequest();
        var url = "addEMP";
        //构建要提交的数据
        var empno = document.getElementsByName("empno")[0].value;
        var ename = document.getElementsByName("ename")[0].value;
        var job = document.getElementsByName("job")[0].value;
        var mgr = document.getElementsByName("mgr")[0].value;
        var sal = document.getElementsByName("sal")[0].value;
        var deptno = document.getElementById("sel").value;
        //构建提交数据
        var data = "empno="+empno+"&ename="+ename+"&job="+job+"&mgr="+mgr+"&sal="+sal+"&deptno="+deptno;
        xhr.open('post',url,true);
    //必须在发送前设置 xhr.setRequestHeader(
"Content-Type","application/x-www-form-urlencoded"); xhr.send(data); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ var res = xhr.responseText; if(res > 0){ alert("添加成功"); }else{ alert("添加失败"); } } } }
原文地址:https://www.cnblogs.com/miaomeng/p/9073043.html