<img>标签添加src之后,会自动发送get请求获取图片资源,但很多情况下,图片资源需要认证才能请求到的。有两种结局办法:

一、使用cookie

这个是非常常用的方法,将认证token放入cookie中发送至后台做认证。这种方法针对认证要求不高的情况,这种方法无法操作请求头

二、异步请求,在请求头中添加authorization

利用window对象下面的URL对象,URL通过file创建一个对象赋值给imageUrl变量,元素的onload 事件触发后将销毁URL 对象(一分钟内),接着给src属性赋值后将追加到页面上,同时及时销毁URL对象释放内存

axios({
  method: 'get',
  responseType: 'blob',
  url: url
}).then(res => {
  // 创建img元素
  let img = document.createElement('img')
  // 如果已经存在img标签,也可以直接使用
  // let img = document.getElementById('imgId')
  img.onload = function () {
    // 移出,释放内存
    window.URL.revokeObjectURL(img.src)
  }
  img.src = window.URL.createObjectURL(res.data)
  // 若为新建img元素,则将img添加到dom节点上即可
  document.getElementById('parentDOM').appendChild(img)
})

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐