美文网首页
promise 封装ajax

promise 封装ajax

作者: 织雪纱奈 | 来源:发表于2019-08-19 15:33 被阅读0次
    function pajax({url=null, method='GET', dataType='JSON', async='true'}){ //这里有四个参数,对应常用的ajax配置,这里用ES6设置默认参数的方式进行设值
        return new Promise((resolve,reject)=>{
            let xhr = new XMLHttpRequest
            xhr.open(method, url, async)
            xhr.responseType = dataType
            xhr.onreadystatechange = () =>{
                //状态码做一个简单的正则验证
                if(xhr.readyState === 4 && (!/^[23]\d{2}$/.test(xhr.status))) {
                    let result = xhr.responseText
                    resolve(result)
                }
            }
            xhr.onerror = (err) => {
                reject(err)
            }
            xhr.send()
        })
    }
    
    pajax({
        url:'./test.json', 
        method: 'get'
    }).then((result)=>{
        console.log(result)
    },(err)=>{
    console.log(err)
    })
    
    

    相关文章

      网友评论

          本文标题:promise 封装ajax

          本文链接:https://www.haomeiwen.com/subject/sazssctx.html