ajax的创建及过程

step1. 创建XMLHttpRequest对象,也就是创建一个异步调用对象; 
step2. 创建一个新的HTTP请求,并指定改HTTP请求的方法、URL以及验证信息(即请求报文行); 

step3. 设置请求报文头(Content-Type:请求资源的MIME类型)(get方式不需要)
step4. 设置响应HTTP状态变化的函数; 
step5. 发送HTTP请求; 
step6. 获取异步调用返回的数据; 
step7. 使用javascript和DOM实现局部刷新;

<script type="text/javascript">
    window.onload = function(){
        //第一步:创建xhr对象
        //xhr是一个对象;里面可以放很多东西,数据;
        var xhr = null;
        if(window.XMLHttpRequest){//标准浏览器
            xhr = new XMLHttpRequest();//创建一个对象
        }else{//早期的IE浏览器
            xhr = new ActiveXObject('Microsoft.XMLHTTP');//参数是规定的;
        }
        console.log("状态q"+xhr.readyState);//0
        //第二步:准备发送请求-配置发送请求的一些行为
        //open即打开链接,第一个参数是以什么方式;第二个是往哪儿发送请求,第三个可以不写,默认true,表示异步,false表示同步;;
        xhr.open('get','03form.php',true);
        console.log("状态w"+xhr.readyState);//1

        //第三步:执行发送的动作
        //send也可以写在前面,推荐写在后面,即第四步设置相应请求状态变化函数的后面,第五步;写null是兼容问题;
        xhr.send(null);
        console.log("状态e"+xhr.readyState);//1

        //如果是post请求,需要在状态变化函数与发送请求之前先设定请求报文头
        xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

        //第四步:指定一些回调函数,也属于事件函数;不触发不执行,触发条件是xhr.readyState;z这个值有0-4,共5个状态,是由浏览器控制的;
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4){//4指服务器返回的数据可以使用;
                if(xhr.status == 200){ //判断已经成功的获取了数据;200表示hTTP请求成功;404表示找不到页面;503表示服务器端有语法错误;
                    var data = xhr.responseText;//json,文本,主角;
                    // var data1 = xhr.responseXML;
                }
            }
            // console.log("状态t"+xhr.readyState);//2表示已经发送完成;

            // console.log(1234);
        }

        // console.log(456);
        console.log("状态r"+xhr.readyState);//1


    }
    </script>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值