uni-app uni.request data传入JSON字符串,鸿蒙平台运行参数多了空格,接口报错,其他平台可以正常运行
uni-app uni.request data传入JSON字符串,鸿蒙平台运行参数多了空格,接口报错,其他平台可以正常运行
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Mac | mac os 11.4 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Mac
HBuilderX类型:正式
HBuilderX版本号:4.56
手机系统:HarmonyOS NEXT
手机系统版本号:HarmonyOS NEXT Developer Beta2
手机厂商:华为
手机机型:Mate^0
页面类型:vue
vue版本:vue3
打包方式:云端
项目创建方式:HBuilderX
示例代码:
【报Bug】 uni.request data传入JSON字符串,鸿蒙平台运行参数多了空格,接口报错, 其他平台可以正常运行
uni.request({
url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
method: 'POST',
data: {
text: 'uni.request'
},
header: {
'custom-header': 'hello' //自定义请求头信息
},
success: (res) => {
console.log(res.data);
this.text = 'request success';
}
});
和
uni.request({
url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
method: 'POST',
data: JSON.stringfy({
text: 'uni.request'
}),
header: {
'custom-header': 'hello' //自定义请求头信息
},
success: (res) => {
console.log(res.data);
this.text = 'request success';
}
});
两个方法的写在在鸿蒙平台表现不一致, data传入 JSON.stringfy({
text: ‘uni.request’
}) 后台接口报错 400 。
操作步骤:
uni.request({
url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
method: 'POST',
data: {
text: 'uni.request'
},
header: {
'custom-header': 'hello' //自定义请求头信息
},
success: (res) => {
console.log(res.data);
this.text = 'request success';
}
});
和
uni.request({
url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
method: 'POST',
data: JSON.stringfy({
text: 'uni.request'
}),
header: {
'custom-header': 'hello' //自定义请求头信息
},
success: (res) => {
console.log(res.data);
this.text = 'request success';
}
});
两个方法的写在在鸿蒙平台表现不一致, data传入 JSON.stringfy({
text: ‘uni.request’
}) 后台接口报错 400 。
预期结果:
uniapp能兼容 传入JSON字符串 或者直接传入对象,
实际结果:
两个参数传递方式 在鸿蒙平台表现不一致
更多关于uni-app uni.request data传入JSON字符串,鸿蒙平台运行参数多了空格,接口报错,其他平台可以正常运行的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我们是SDK内部封装的API, 传递的data为JSON 字符串, 在鸿蒙平台接口会报错, 其他平台正常。
更多关于uni-app uni.request data传入JSON字符串,鸿蒙平台运行参数多了空格,接口报错,其他平台可以正常运行的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个已知的鸿蒙平台兼容性问题。当直接传入JSON字符串时,鸿蒙平台会在参数中自动添加空格导致接口报错400错误。
建议解决方案:
- 优先使用对象形式传参(第一种方式),让uni-app内部处理序列化
- 如果必须使用JSON字符串,可以尝试手动去除空格:
data: JSON.stringify({text: 'uni.request'}).replace(/\s+/g, '')