微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Promise实现ajax

利用Promise实现ajax

 

GET

分享图片

    function getAjax(url) {
        return new Promise((resolved,rejected)=>{
            //创建ajax对象
            let ajax = new XMLHttpRequest();
            //配置参数
            ajax.open(‘get‘,url,true)
            //发送请求
            ajax.send();
            //请求成功之后
            ajax.onload = function () {
                if(this.status === 200){
                    console.log(ajax.responseText)
                    resolved(ajax.responseText);
                }else{
                    rejected();
                }

            }
        })
    }
View Code
getAjax(url).then().catch()

 

POST

分享图片

    function postAjax(url,param) {
        return new Promise((resolved,rejected)=>{
            //创建ajax对象
            let ajax = new XMLHttpRequest();
            //配置参数
            ajax.open(‘post‘,true);

            //设置请求头,表示我传递的参数的类型
            xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            //发送请求,并将数据传递过去
            ajax.send(JSON.stringify(data));

            //请求成功之后
            ajax.onload = function () {
                if(this.status === 200){
                    console.log(ajax.responseText)
                    resolved(ajax.responseText);
                }else{
                    rejected();
                }

            }
        })
    }
View Code
getAjax(url,param).then().catch()

 

GET \POST合并

分享图片

    function myAjax(type,params) {
        return new Promise((resolved,rejected)=>{

            //创建ajax对象
            let ajax;
            //注意,不要根据浏览器的navigator.userAgent来检测浏览器是否支持某个JavaScript特性,一是因为这个字符串本身可以伪造,二是通过IE版本判断JavaScript特性将非常复杂。
            if (window.XMLHttpRequest) {
                ajax = new XMLHttpRequest();
            } else {
                ajax = new ActiveXObject(‘Microsoft.XMLHTTP‘);
            }


            if(type == ‘get‘ || type == ‘‘){//get
                //配置参数
                ajax.open(‘get‘,true)
                //发送请求
                ajax.send();
            }else if(type == ‘post‘){//post
                //配置参数
                ajax.open(‘post‘,true);
                //设置请求头,表示我传递的参数的类型
                xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
                //发送请求,并将数据传递过去
                ajax.send(JSON.stringify(data));
            }

            //请求成功之后
            request.onreadystatechange = function (){
                if (request.readyState === 4){
                    if(this.status === 200){
                        console.log(ajax.responseText)
                        resolved(ajax.responseText);
                    }else{
                        rejected();
                    }
                }
            }

        })
    }
View Code
    getAjax(‘get‘).then().catch()
    getAjax(‘post‘,param).then().catch()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐