uni-app uni.uploadFile 请求中获取cookies内容在安卓手机上无法获取而ios端可以获取
uni-app uni.uploadFile 请求中获取cookies内容在安卓手机上无法获取而ios端可以获取
4 回复
app没做过,但我知道app里是没有cookies的(浏览器才有)。你难道没有用官方提供的setStorageSync方法吗?
他说的应该是token,我猜的
在使用 uni.uploadFile
进行文件上传时,如果遇到在安卓设备上无法获取 cookies
,而在 iOS 设备上可以正常获取的情况,可能是由于以下几个原因导致的:
1. 跨域问题
- 原因:在安卓设备上,跨域请求可能会被更严格地处理,导致
cookies
无法正常传递。 - 解决方案:确保服务器端设置了正确的
CORS
头部,允许跨域请求携带cookies
。例如:Access-Control-Allow-Origin: https://your-domain.com Access-Control-Allow-Credentials: true
2. withCredentials
设置
- 原因:在
uni.uploadFile
中,默认情况下可能没有设置withCredentials
为true
,导致cookies
不被发送。 - 解决方案:在请求中明确设置
withCredentials
为true
:uni.uploadFile({ url: 'https://your-api-endpoint.com/upload', filePath: filePath, name: 'file', header: { 'Content-Type': 'multipart/form-data' }, withCredentials: true, // 确保携带 cookies success: (res) => { console.log('Upload success:', res); }, fail: (err) => { console.error('Upload failed:', err); } });