原生js封闭ajax函数

见解就这些,不足的地方大姥指点

 <script>
        /**
         * ajax:主要用途就是获取后台数据,与后台进行数据交互
         * XMLHttpRequest
         * 
         * url:请求网络地址
         * type:请求方式:get post
         * data:请求参数  字符串key=value&key1=value1
         * callback:成功的回调函数 (接收后端请求过来的数据 )
         * flas:是否异步
        */
        function ajax(url, type, data, callback, flas) {
            var xml = null;
            if (window.XMLHttpRequest) {//现代浏览器都支持
                xml = new XMLHttpRequest()//创建网络对象
            } else {
                //兼容IE6以下
                xml = new ActiveXObject("Microsoft.XMLHTTP")//里面的字符串是固定写法,与浏览器大战有关,记住即可
            }
            if (type == "get") {
                //flas为true时,open(需要时间)过程为异步,后面的js代码接续执行。
                //flas为false时,open(需要时间)过程为同步,后面的代码要等open执行完才可以后面js代码接续执行。
                xml.open(type, url + "?" + data, flas);//固定写法,可以查w3c手册
                xml.send();//发送请求
            } else if (type == "post") {
                xml.open(type, url, flas)//请求为post时,不是请求数据,是发送数据 

                // application/json   json 字符串或json对象
                // multipart/form-data  上传文件 file  
                xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');//发送数据的类型
                xml.send(data);
            }

            xml.onreadystatechange = function () {//监听请求状态,状态为1-4
                if (xml.readyState == 4) {//如果状态为4时说明请求已经发送
                    /*
                    页面状态码:(具体的百度)
                    2**:请求成功
                    3**:请求被重定向
                    4**:请求错误
                    */
                    if (xml.status == 200) {//如果后端发送的status为200时说明,请求数据已成功
                        //xml.responseText:请求的数据存放点
                        
                        //请求后执行回调函数 
                        callback(xml.responseText);
                    }
                }
            }

        }
    </script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值