封装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 @   干饭吧  阅读(30)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示