zoukankan      html  css  js  c++  java
  • 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',url,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,url,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',url,true)
                    //发送请求
                    ajax.send();
                }else if(type == 'post'){//post
                    //配置参数
                    ajax.open('post',url,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()
  • 相关阅读:
    Java高级特性 第11节 JUnit 3.x和JUnit 4.x测试框架
    Java高级特性 第10节 IDEA和Eclipse整合JUnit测试框架
    Java高级特性 第9节 Socket机制
    Java面向对象和高级特性 项目实战(一)
    Java高级特性 第8节 网络编程技术
    Java高级特性 第7节 多线程
    二十一、字符串类的创建
    二十二、经典问题解析二
    二十一、C++中的临时对象
    二十、对象的销毁
  • 原文地址:https://www.cnblogs.com/shaokevin/p/9796882.html
Copyright © 2011-2022 走看看