Ajax

Ajax

  Asynchronous JavaScript and Xml异步的JavaScript和Xml.用来改善用户体验技术,使用XMLHttpRequest对象一部地向服务器发送请求,服务器返回部分数据而不是一个完整的页面,页面无刷新效果改变页面中的部分内容.

发送异步请求步骤

  1.获取Ajax对象:获取XMLHttpRequest对象实例

    var xhr=getXhr();

    function getXhr(){

      var xhr=null;

      if(window.XMLHttpRequest){

        xhr=new XMLHttpRequest();

      }else{

        xhr=new ActiveXObject('Microsoft.XMLHTTP');

      }

      return xhr;

    }

  2.设置回调函数:为Ajax对象的onreadystatechange事件设定响应函数

    function fn(){

      if(xhr.readyState==4&&xhr.status==200){

        var txt=xhr.responseTest;

        //DOM操作

      }

    }

  3.创建请求:调用XMLHttpRequest对象的open方法

    1).创建请求-GET请求

     xhr.open('get','xx.do',true);

      注:

        true:表示发送异步请求(当Ajax对象发送请求时,用户仍然可以对当前页面做其它的操作).false:表示发送同步请求(当Ajax对象发送请求时,浏览器会锁定当前页面,用户不能对当前页面做其它操作).

    2).创建请求-POST请求

      xhr.open('post','xx.do',true);

      xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');

        setRequestHeader作用:因为HTTP协议要求发送post请求时,必须有content-type消息头,但是默认时xhr(Ajax对象)不会添加该消息头,所以,需要调用setRequestHead方法,添加这个消息头

  4.发送请求:调用Ajax对象的send方法

    GET  请求:xhr.send(null)

    POST  请求:xhr.send(name=value&name=value.....)

      GET请求:

        -send方法内传递null

        -若要提交数据,则在open方法的"URL"后面追加

        -如:xhr.open("get","xx.do?name=value&name=value",true)

posted @ 2019-05-30 11:30  hai01  阅读(110)  评论(0)    收藏  举报