封装ajax的函数



// path 路径
// type 数据提交的方式  get/post
// data  前端需要带的数据 {}
// dataType  默认是json格式  
// successCB 数据拿到之后所要做的事情  function

function ajax(option) {
    const {
        path , 
        type = 'get' , 
        dataType = 'json' ,
        data = {},
        successCB
    } = option ;



    // 拼接数据
    let params = '' ;
    for(let key in data) {
        params += `${key}=${data[key]}&`
    }
    params = params.substring(0 , params.length - 1) ;

    console.log(params)


    const xhr = new XMLHttpRequest() ;

    // 判断get请求还是post请求

    if(type.toLowerCase() === 'get') {
        xhr.open(type , path + '?' + params , true) ;
        xhr.send() ;
    } else {
        xhr.open(type , path , true) ;
        xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded') ;
        xhr.send(params) ;
    }

 
    xhr.onreadystatechange = () => {
        if(xhr.readyState == 4 && xhr.status == 200) {
            let data = xhr.responseText ; 
            console.log(data) ;
            if(dataType == 'json') {
                data = JSON.parse(data) ;
            }
            successCB && successCB(data) ;
        }
    }

}
 
posted @ 2021-04-22 18:48  干饭吧  阅读(35)  评论(0)    收藏  举报