如何解决img标签的src需要携带token
Posted 不想掉头发啊!!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决img标签的src需要携带token相关的知识,希望对你有一定的参考价值。
一、业务场景
上传头像后需要回显头像,而后端给出的预览头像的接口需要携带token,因此直接在img标签的src属性怼上头像地址是不可行的,因为无法携带token。
二、解决思路
参考该大佬的思路,主要有一下两个思路:
1.先通过请求获取二进制图片,将图片转成base64,img标签的src属性可以解析base64
2.改变用户验证的方式,通过URL方式传token. 一般情况下用户token是放在header中的,但是img标签无法配置header。
此文采用的是第一种方式,即转base64
三、代码
/**
* 预览头像
* @param params
* @returns *
*/
export const previewAvatar = (params) =>
return request(
url: 'xxxxx/xxx',
params,
method: 'get',
responseType: "blob", // 获取图片的二进制流
)
// 请求图片
previewAvatar(
filename: avatarName,
uloginname: state.userName
).then(newRes =>
// URL.createObjectURL(newRes) 对请求回来的图片转成base64,并得到一个当前文件的一个内存URL
commit('setAvatar', URL.createObjectURL(newRes))
)
以上是关于如何解决img标签的src需要携带token的主要内容,如果未能解决你的问题,请参考以下文章