原生js-发起请求request

 request(接口名,{name:"张三"},回调方法)

function  request(api,data,callback){
    var xhr = new XMLHttpRequest();
    let baseUrl="http://localhost:8080/"
    let url1=baseUrl+api+"?"
    let url=appendQueryParams(url1,data)
    console.log('url',url)

    xhr.open("GET", url, true); // 使用GET方法请求URL,异步
    xhr.onload = function () {
        if (xhr.status === 200) {
            // 请求成功,调用回调函数并传入响应文本
            callback(null, xhr.responseText);
        } else {
            // 请求失败,调用回调函数并传入错误对象
            callback(new Error('Request failed. Returned status of ' + xhr.status));
        }
    };

    xhr.onerror = function () {
        // 网络错误等,调用回调函数并传入错误对象
        callback(new Error('There was a network error.'));
    };
    // 发送请求
    xhr.send();
}
function appendQueryParams(url, params) {
    // 确保参数是对象
    if (typeof params !== 'object' || params === null) {
        return url;
    }

    // 初始化查询字符串
    let queryString = '';

    // 遍历参数对象
    for (let key in params) {
        if (params.hasOwnProperty(key)) {
            // 跳过那些值为空或undefined的参数
            if (params[key] !== null && params[key] !== undefined) {
                // 如果queryString已经存在内容,则添加&
                if (queryString) {
                    queryString += '&';
                }
                // 编码键和值,并添加到查询字符串
                queryString += encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);
            }
        }
    }

    // 如果URL中已存在查询字符串,则添加&,否则添加?
    if (url.includes('?')) {
        url += '&' + queryString;
    } else {
        url += '?' + queryString;
    }

    return url;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值