w***@163.com
w***@163.com
  • 发布:2024-12-03 17:28
  • 更新:2024-12-03 19:02
  • 阅读:39

【报Bug】ios使用uploadFile上传文件,服务器返回非200状态码,success回调中获取不到服务器返回的数据

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: 正式

HBuilderX版本号: 4.36

手机系统: iOS

手机系统版本号: iOS 18

手机厂商: 苹果

手机机型: iphone 11

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
               uni.uploadFile({  
            url: fyURL,  
            method: 'post',  
            filePath: data.path,  
            name: 'image',  
            success (res) {  
                console.log(res) // res.data为空  
                let data = res?.data  
                try{  
                    data = JSON.parse(data)  
                }catch(e){  
                    data = null  
                }  
                resolve(data || {  
                    code: 400,  
                    msg: '识别文字失败'  
                })  
            },  
            fail (e) {  
                resolve('服务异常,识别失败')  
            }  
        })

操作步骤:

服务器返回401status,并携带响应数据。
ios的uploadFile的success回调获取不到服务器返回的响应数据

预期结果:

{
"data": "{\"code\":4001,\"msg\":\"试用次数已用完,请登录后继续使用哦~\"}",
"statusCode": 401,
"errMsg": "uploadFile:ok"
}

实际结果:

{
"data": "",
"statusCode": 401,
"errMsg": "uploadFile:ok"
}

bug描述:

ios使用uploadFile上传文件,服务器返回401状态码,success回调中获取不到服务器返回的数据

请求响应内容 Response如下:
HTTP/1.1 401 Unauthorized
Server: openresty
Date: Mon, 02 Dec 2024 09:17:01 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 74
Connection: keep-alive
Access-Control-Allow-Credentials: ture
Access-Control-Allow-Headers:
Access-Control-Allow-Methods: GET, HEAD, POST, PATCH, PUT, DELETE
Access-Control-Allow-Origin:
Access-Control-Allow-Private-Network: ture
Access-Control-Expose-Headers: Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Anonymous-Id
Access-Control-Max-Age: 86400
Anonymous-Id: f16bed9bd7920cc5b1cb2147fe5bbda1
Error: 试用次数已用完,请登录后继续使用哦~
Traceparent: 00-6acb6fe1791b03afbb211f56de55a698-6513d209430cd924-00
Vary: Origin

{"code":4001,"msg":"试用次数已用完,请登录后继续使用哦~"}

-------------------------------------------------------------------分割线-------------------------------------------------------------------

以上是抓包的返回,在ios真机中的 uni.uploadFile 的 success 回调中返回的是以下数据,data为空

{
"data": "",
"statusCode": 401,
"errMsg": "uploadFile:ok"
}

-------------------------------------------------------------------分割线-------------------------------------------------------------------

在安卓真机中的 uni.uploadFile 的 success 回调中返回的是以下数据,data是服务器返回的数据

{
"data": "{\"code\":4001,\"msg\":\"试用次数已用完,请登录后继续使用哦~\"}",
"statusCode": 401,
"errMsg": "uploadFile:ok"
}

2024-12-03 17:28 负责人:DCloud_UNI_OttoJi 分享
已邀请:
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

ios 模拟器是否正常,其他同事的 ios 真机是否正常,都有问题还是 ios18 有问题?

  • w***@163.com (作者)

    没有在模拟器试过,目前只在真机测试



    1. iphone11 - ios18.1.1 - 有问题

      2.iphone15 pro - ios17.5.1 - 有问题

    2024-12-03 20:18

要回复问题请先登录注册