cocos-creator使用记录22_使用微信和原生js的http的get和post

本文详细介绍了HTTP协议中GET和POST请求的实现方式,并对比了JavaScript与微信平台下这两种请求方式的不同实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1.http的get和post请求
Get: function(callback){
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4){
            if(xhr.status >= 200 && xhr.status < 400){
                var response = xhr.responseText;
                // console.log(response)
                if(response){
                    var responseJson = JSON.parse(response);
                    callback(responseJson);
                }else{
                    console.log("返回数据不存在")
                    callback(false);
                }
            }else{
                console.log("请求失败")
                callback(false);
            }
        }
    };
    xhr.open("GET", "https://www.mysite.net/common/config/info?app_name=2048&version=1.1.0", true);
    xhr.send();
},
Post: function (reqData, callback) {
    //拼接请求参数
    var param = "";
    for(var item in reqData){
        param += item + "=" + reqData[item] + "&";
    }
    //发起请求
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4){
            if(xhr.status >= 200 && xhr.status < 400){
                var response = xhr.responseText;
                // console.log(response)
                if(response){
                    var responseJson = JSON.parse(response);
                    callback(responseJson);
                }else{
                    console.log("返回数据不存在")
                    callback(false);
                }
            }else{
                console.log("请求失败")
                callback(false);
            }
        }
    };
    xhr.open("POST", "https://www.mysite.net/common/config/info/", true);
    xhr.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");  
    xhr.send(param);//reqData为字符串形式: "key=value"
},

注意:js的http函数似乎不能复用,必须每次都重新创建一个XMLHttpRequest。

2.使用微信的http接口
httpRequest: function(url, data, call = function(){}, sync = false, method = 'POST', json = false){ //默认'POST',根据情况设置为'GET'
    if(!(cc.sys.platform === cc.sys.WECHAT_GAME)) return;
    if(json){
        wx.request({
            url: url,
            data: data,
            method: method || "POST",
            header: {'content-type': 'application/json'},
            success(res){call(res);},
            fail(){call();}
        });
    }else{
        wx.request({
            url: url,
            data: data,
            method: method || "POST",
            header: {'content-type': 'application/x-www-form-urlencoded'},
            success(res){call(res);},
            fail(){call();}
        });
    }
},

httpRequestConfig: function() { //获得后台启动配置信息
    common.httpRequest(common.url.path + common.url.info, {app_name:common.app_name, version:common.version},
        function(data){
            if(data){
                var $data = data.data.data;
                console.log("启动配置:", data)
                common.isShowGift = parseInt($data.gift);
            }
        },
    false, "GET");
},

注意:微信的http函数可以复用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值