Ajax学习笔记

Ajax(Asynchronous Javascript And XML) 异步访问服务器的网页技术,无需刷新网页,即可获取服务端信息,对客户端信息经行判断和识别;AJax只是连接服务器与客户端的一个接口,将客户端的信息传递到服务器,通过服务器端的文件对Ajax提供的信息执行相关的操作,信息的来源是从页面上通过js获取

ajax主要是通过XMLHttpRequest对象实现异步操作的

1.创建XMLHttpRequest对象

var request;

if(window.XMLHttpRequest){

request = new XMLHttpRequest();

}else{

request = new ActiveObject("Microsoft.XMLHttp");

}

因为IE7以下并不支持XMLHttpRequest对象,所以使用这种方法创建,一般可以忽略,直接使用var request = new XMLHttpRequest();创建

2.http请求

http协议是无状态的协议浏览器和服务器之间的请求分为如下几步:(1)建立TCP连接    (2)Web浏览器向Web服务器发送给请求命令(3)Web浏览器发送请求头信息(4)Web服务器应答

(5)Web服务器发送响应头信息(6)Web服务器发送数据(7)Web服务器关闭TCP连接

3.发送请求

request.open(method,url,async)

method 请求方式 post get

url  请求地址

async 默认为true即异步,false为同步

request.send(String)

String 可不填,为发送需要发送的数据

4.响应

responseText  字符串形式的响应数据

responseXML:XML形式的响应数据status和statusText() : 以数字或文本的形式返回HTTP状态码

getAllRequestHeader():获取所有的响应头信息

getResponseHeader() :获取特定字段的响应头信息

5.readyState属性

0:请求未初始化,open未调用

1:服务器连接已经建立

2:请求已经接收

3:请求处理中

4:请求已经完成

request.onreadystatechange =function(){
//监听事件 是否返响应
}
 
6.具体代码
原生js实现
 
<script>
    var request = new XMLHttpRequest();
    request.open("GET","");//空格为提交到的后台处理文件,如php 惊悚片等
    //request.setRequestHeader("","");//当open的method是post方式时,需要调用此方法,设置相应的参数
    request.send();//发送
    request.onreadystatechange =function(){//监听事件 是否返响应
        if(request.readyState===4){
            if(request.status==200){
                var data = JSON.parse(request.responseText);
                if(data.success){
                    //操作成功执行的操作
                }else{
                    alert("参数错误");
                }
            }
        }
    }
    </script>

jquery实现

<script>
    $(document).ready(function(){
        $("#search").click(function(){
            $.ajax({
                type:"post",
                url:"",//服务器地址的后台文件地址
                dataType:"json",
                data:"",
                success:function(data){

                },
                error:function(jqXHR){
                    alert(jqXHR.status);
                }
            })
        })
    })
</script>
原文地址:https://www.cnblogs.com/html-css-js/p/7090504.html