uni-app中使用uni.request发送URL-encoded请求,参数类型为什么全部变成了字符串
时间: 2023-12-22 09:05:17 浏览: 227
在使用 uni.request 发送 URL-encoded 请求时,uni-app 默认会将请求体中的参数全部转换为字符串类型。这是因为在发送请求时,uni-app 会将请求体中的参数转换为字符串后再发送,以确保请求体中的参数符合 URL-encoded 格式的要求。
如果你需要将请求体中的参数保留其原有的类型,可以将请求体中的参数先转换为对象类型,再通过 JSON.stringify() 方法将其转换为字符串类型。以下是一个示例:
```javascript
let data = {
param1: 'value1',
param2: 123,
param3: true
};
uni.request({
url: '/api/your-url',
method: 'POST',
header: {
'content-type': 'application/x-www-form-urlencoded'
},
data: JSON.stringify(data),
success: function (res) {
console.log(res);
},
fail: function (err) {
console.log(err);
}
});
```
这里的 data 参数为一个对象,其中包含了字符串、数字和布尔值类型的参数。在发送请求时,我们先将 data 对象转换为字符串,再将其作为请求体发送出去。这样就可以保留参数的原有类型。在服务器端接收到请求后,再将请求体中的字符串参数转换为相应的类型即可。
阅读全文