【微信小程序】wx.request出现undefined

偶现,天啦噜,一直困惑了很久的bug终于找到原因了。示例代码如下

wx.request({
    sucess:function(res){
        if(res.statusCode==200 && res.data.status==200){
           //do something
        }else {
            console.log(res.statusCode);    //错误代码是console.log(res.data.status);
        }
})

①首先我想记录一下 res.statusCode和res.data.res的区别。

res.statusCode 代表的是 这次网络请求,是否成功。代表的是该次网络请求的返回码。

res.data.status 代表的 对应服务接口 返回数据中的 status(名字不固定,可以叫任何名字)

②在写错误代码的时候,res.data.status字段一直返回undefined,找了好久找不到原因。

很尴尬的是,这是请求成功里面的回调,却没有返回字段,而且服务器日志里也没收到这条请求。

后来,还是小程序的日志中,找到了错误原因。是JSON解析时候出现了错误,有些字段,服务器需要的是int型,而我传的是String类型。

解决方法:parse做个转型。转成服务器需要的数据类型,即可。

var c="222";
console.log(parseInt(c));//应该输出222


微信小程序中,使用`wx.request`进行网络请求时,涉及到数据传输安全,特别是在处理敏感信息时,可能需要采用国密(国家密码算法)进行加密和解密。微信提供了相应的API来支持这些操作,具体步骤如下: 1. **引入加密库**: 首先,在你的小程序项目中,需要安装微信提供的`miniprogram-crypto`库,用于国密相关操作。在`pages/index.js`或相关页面的入口文件中,添加: ```javascript const crypto = require('miniprogram-crypto'); ``` 2. **加密和解密**: 使用`crypto.encrypt`方法对数据进行加密,`crypto.decrypt`方法进行解密。例如,假设你想加密一个字符串: ```javascript const originalData = 'your sensitive data'; const encryptedData = crypto.encrypt(originalData, 'your-encryption-key'); ``` 解密时,用相同的密钥: ```javascript const decryptedData = crypto.decrypt(encryptedData, 'your-encryption-key'); ``` 3. **在`wx.request`中应用加密**: 当发送数据到服务器时,可以在发送前加密,接收后解密。示例代码: ```javascript wx.request({ url: 'your-server-url', data: { encryptedData }, // 注意:这里加密Data而不是明文 method: 'POST', header: { 'Content-Type': 'application/json' // 假设你的服务器需要JSON格式的数据 }, success(res) { const serverResponse = res.data; const decryptedResponse = crypto.decrypt(serverResponse, 'your-encryption-key'); // 解析并处理解密后的数据 } }); ``` 同样,服务器也需要支持接收加密数据,并返回解密后的数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值