uni-app uni.uploadFile传输时header参数转为小写问题
uni-app uni.uploadFile传输时header参数转为小写问题
测试过的手机:
11
操作步骤:
无
预期结果:
无
实际结果:
无
bug描述:
uni.uploadFile传输的时候,为啥header参数都转为小写??是不是太作了??
```项目属性 | 值 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Mac |
PC开发环境操作系统版本号 | macOS |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.4.7 |
手机系统 | 全部 |
手机厂商 | 华为 |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
2 回复
啥啥啥?没明白啥意思
在使用 uni.uploadFile
进行文件上传时,如果你在 header
参数中设置了自定义的请求头,可能会遇到请求头字段被自动转换为小写的问题。这是因为在某些环境下(如微信小程序),uni.uploadFile
的底层实现可能会对请求头字段进行标准化处理,将其转换为小写。
问题描述
例如,你设置了如下的 header
参数:
uni.uploadFile({
url: 'https://example.com/upload',
filePath: filePath,
name: 'file',
header: {
'Custom-Header': 'value'
},
success: (res) => {
console.log(res);
},
fail: (err) => {
console.error(err);
}
});
在发送请求时,Custom-Header
可能会被转换为 custom-header
。
解决方案
如果你需要保持请求头字段的大小写不变,可以考虑以下几种解决方案:
-
使用
uni.request
替代uni.uploadFile
: 如果你不需要使用uni.uploadFile
的特定功能,可以使用uni.request
来手动处理文件上传,这样可以完全控制请求头的大小写。uni.request({ url: 'https://example.com/upload', method: 'POST', header: { 'Custom-Header': 'value' }, data: formData, // 手动构建 FormData success: (res) => { console.log(res); }, fail: (err) => { console.error(err); } });