百度小程序请求接口参数输出有值,而执行时没有值或者参数被省略问题

百度小程序请求接口参数输出有值,而执行时没有值或者参数被省略问题


问题说明1:在请求接口参数的data值中,如果有某一项值的数据类型为数组,在执行请求时不成功,通过Network下查看显示值为空,如下图

//代码举例
        var openid = 'xxxxx';
        var uniacid=120;
        var arrayData = [{ num:1,pvid:12520 }];
        swan.request({
            url: that.data.baseurl + 'getNumber',
            data: {
                uniacid: that.data.uniacid,
                jsdata: arrayData,
                openid: openid
            },
            success: function (res) {
                console.log(res)
            }
        })

百度小程序请求接口参数输出有值,而执行时没有值或者参数被省略问题_第1张图片
解决方法:此时,我们可以将数组转化为JSON字符串即可,如JSON.stringify(arrayData)。

        swan.request({
            url: that.data.baseurl + 'getNumber',
            data: {
                uniacid: that.data.uniacid,
                jsdata: JSON.stringify(arrayData),
                openid: openid
            },
            success: function (res) {
                console.log(res)
            }
        })

再执行请求时成功:如下图
百度小程序请求接口参数输出有值,而执行时没有值或者参数被省略问题_第2张图片
问题说明2 :如果传入的值是不存在或者为undefined,接口会直接省略掉该参数。
解决方法:可以加上一个判断,如果值存在就先取该值,如果不存在就设置一个默认值;

     var openid=120var uniacid
       swan.request({
           url: that.data.baseurl + 'getNumber',
           data: {
               uniacid: uniacid?uniacid:'1x2y3c',
               openid: openid
           },
           success: function (res) {
               console.log(res)
           }
       })

你可能感兴趣的:(百度小程序)