新版本 鸿蒙APP, uni-app uni.request 请求接口时 'Content-Type': 'application/json; charset=utf-8' 问题
新版本 鸿蒙APP, uni-app uni.request 请求接口时 ‘Content-Type’: ‘application/json; charset=utf-8’ 问题
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 11 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
HBuilderX版本号:4.66
手机系统:HarmonyOS NEXT
手机系统版本号:HarmonyOS NEXT Developer Preview
手机厂商:华为
手机机型:华为 mate 60
页面类型:vue
vue版本:vue3
打包方式:云端
项目创建方式:HBuilderX
示例代码:
这个问题只会出现在鸿蒙APP上,参数数组类型的值需要转后端才能拿到
var list = [{
name: '小明',
age: 18
}];
uni.request({
header: {
'Content-Type': 'application/json; charset=utf-8'
},
data: {
a: list,
a: [...list],
a: [{
name: '小明',
age: 18
}]
}
})
操作步骤:
这个问题只会出现在鸿蒙APP上
var list = [{
name: '小明',
age: 18
}];
uni.request({
header: {
'Content-Type': 'application/json; charset=utf-8'
},
data: {
a: list,
a: [...list],
a: [{
name: '小明',
age: 18
}]
}
})
预期结果:
data a: list
这样传参应该正常接收参数
var list = [{
name: '小明',
age: 18
}];
uni.request({
header: {
'Content-Type': 'application/json; charset=utf-8'
},
data: {
a: list,
a: [...list],
a: [{
name: '小明',
age: 18
}]
}
})
实际结果:
data a: list
这样传参在鸿蒙设备上后端拿不到参数
var list = [{
name: '小明',
age: 18
}];
uni.request({
header: {
'Content-Type': 'application/json; charset=utf-8'
},
data: {
a: list,
a: [...list],
a: [{
name: '小明',
age: 18
}]
}
})
更多关于新版本 鸿蒙APP, uni-app uni.request 请求接口时 'Content-Type': 'application/json; charset=utf-8' 问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
有什么好的解决方案吗?鸿蒙next 真机系统版本(5.0.1.120 sp3)和虚拟机调试都遇到了这个问题
更多关于新版本 鸿蒙APP, uni-app uni.request 请求接口时 'Content-Type': 'application/json; charset=utf-8' 问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我现在临时这样处理了 a: […list] 把数组重新转了下
这是鸿蒙系统下uni.request的一个已知兼容性问题。对于数组类型参数的传递,建议在鸿蒙APP中先使用JSON.stringify()将数组转为字符串再传递:
var list = [{
name: '小明',
age: 18
}];
uni.request({
header: {
'Content-Type': 'application/json; charset=utf-8'
},
data: {
a: JSON.stringify(list) // 转为JSON字符串
}
})