小栗
小栗
  • 发布:2025-05-21 10:39
  • 更新:2025-05-21 10:39
  • 阅读:17

【报Bug】急急急,新版本 鸿蒙APP, uni.request 请求接口时 'Content-Type': 'application/json; charset=utf-8' 问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 11

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: {  
                        // 鸿蒙APP上 后端取参时 a 是空数组, h5,安卓后端正常取参  
                        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: {  
                        // 鸿蒙APP上 后端取参时 a 是空数组, h5,安卓后端正常取参  
                        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: {  
                        // 鸿蒙APP上 后端取参时 a 是空数组, h5,安卓后端正常取参  
                        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: {  
                        // 鸿蒙APP上 后端取参时 a 是空数组, h5,安卓后端正常取参  
                        a: list,  
                        // 后端可以拿到参数  
                        a: [...list]  
                        // 后端可以拿到参数  
                        a: [{  
                            name: '小明',  
                            age: 18  
                        }]  
                    }  
                })

bug描述:

急急急,鸿蒙版本问题,求解决。

我使用 huilder X 4.64 及以下版本没问题,4.65及以上版本出现这个问题。

在线运行的鸿蒙APP,进行调用 api uni.request , 如果将header头设置为 'Content-Type': 'application/json; charset=utf-8' ,后端拿不到二层json数据 。

这个bug只会出现在鸿蒙APP上, 经过测试 h5,安卓 同样代码 后端都正常接受参数(后端使用PHP)

2025-05-21 10:39 负责人:无 分享
已邀请:

要回复问题请先登录注册