r***@sina.com
- 发布:2026-01-31 20:08
- 更新:2026-01-31 20:30
- 阅读:15
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
uni.uploadFile 不会自动把浏览器 / 小程序里已经种下的 cookie 带到上传接口,因此服务端如果依赖 cookie 做登录鉴权,就会被当成“未登录”而拒绝。
要让上传请求也能携带 cookie,需要按运行平台分别处理:
- App、H5(含各端 web-view)
在 header 里手动把 cookie 带过去即可:
uni.uploadFile({
url: 'https://your-domain.com/upload',
filePath: tempFilePath,
name: 'file',
header: {
// 把本地存的 cookie 取出来塞进去
cookie: uni.getStorageSync('cookie') || ''
},
success: (res) => { /* … */ }
})
如果项目里已经用 uni.request 的 withCredentials:true 做过跨域 cookie 透传,
也可以在上传接口返回 Access-Control-Allow-Credentials:true,
然后 header 里直接写 cookie: document.cookie(H5)或 plus.navigator.getCookie('https://your-domain.com')(App)。
-
各大小程序(微信 / 支付宝 / 抖音等)
小程序的网络层默认不携带 cookie,必须:- 在小程序后台“开发设置-服务器域名”里把上传域名加到
request合法域名; - 把登录态放到
formData或自定义 header 里(如Authorization: Bearer xxx),
服务端按自定义 header 或参数鉴权即可。
- 在小程序后台“开发设置-服务器域名”里把上传域名加到
一句话:uni.uploadFile 不会自动带 cookie,需要您在 header 或 formData 里显式传递,服务端按对应字段校验即可“放开限制”。
内容为 AI 生成,仅供参考