uni-app 2021年10月29日最新版本uni.request返回结果取不到set-cookie且cookies为空
uni-app 2021年10月29日最新版本uni.request返回结果取不到set-cookie且cookies为空
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | windows11 | HBuilderX |
### 操作步骤:
- 随意一个接口都会出现上述问题
### 预期结果:
- 用postman会有字段
### 实际结果:
- 用最新版编译器出现问题
### bug描述:
- uni.request发请求返回结果没有set-cookie字段且cookies为空,之前用老版本没有这个问题,更新到最新版本就出现问题了!急求解决
更多关于uni-app 2021年10月29日最新版本uni.request返回结果取不到set-cookie且cookies为空的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
建议使用3.3.13版本验证下
更多关于uni-app 2021年10月29日最新版本uni.request返回结果取不到set-cookie且cookies为空的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我在使用内置浏览器调试的时候 同样获取不到Cookies,相反的当我运行到IOS模拟器基座的时候是可以获取到的。
在uni-app的最新版本中,uni.request的返回结果中确实不再直接暴露set-cookie字段,且cookies可能为空。这主要是由于平台差异和安全策略的调整。
主要原因:
- 跨平台一致性处理:uni-app需要兼容多个平台(如小程序、App、H5),而各平台对Cookie的处理机制不同。为统一行为,uni-app底层进行了封装,默认可能不会直接返回
set-cookie。 - 安全策略限制:部分平台(如小程序)默认禁止或限制跨域Cookie,导致服务端返回的
set-cookie无法被客户端直接获取。
解决方案:
- 检查请求配置:确保请求的
withCredentials属性设置为true(仅H5和App端有效)。示例:uni.request({ url: 'your_api_url', withCredentials: true, // 允许携带凭证 success(res) { console.log(res); } }); - 从响应头中获取:通过
res.header或res.headers查看set-cookie,部分平台可能将Cookie信息放在响应头中。示例:uni.request({ url: 'your_api_url', success(res) { const setCookie = res.header['Set-Cookie']; // 尝试获取响应头 console.log('Set-Cookie:', setCookie); } });

