图片请求加上token的方法记录,没有后端的token是不能单独打开图片的,vue+element里面的解决方法  

1.组件的使用

        <auth-pic
            v-else
            class="header-img"
            :auth-src="
              env
                ? scope.row.imgUrl
                : scope.row.imgUrl
                ? '/api' + scope.row.imgUrl
                : ''
            "
          ></auth-pic>

2.组件具体的代码

<template>
  <img ref="img" style="margin:0 auto;"></img>
</template>
<script>
import { getToken } from '@/utils/auth'
export default {
  name: "AuthImg",
  props: {
    authSrc: {
      type: String,
      default: "",
    }
  },
  mounted () {
    let token = getToken()
    Object.defineProperty(Image.prototype, 'authsrc', {
      writable: true,
      enumerable: true,
      configurable: true
    })
    let img = this.$refs.img
    let request = new XMLHttpRequest();
    request.responseType = 'blob';
    request.open('get', this.authSrc, true);
    request.setRequestHeader('Authorization', 'Bearer '+token);  //根据后端需求添加的权限标志
    request.onreadystatechange = e => {
      if (request.readyState == XMLHttpRequest.DONE && request.status == 200) {
        img.src = URL.createObjectURL(request.response);
        img.onload = () => {
          URL.revokeObjectURL(img.src);
        }
      }
    };
    request.send(null);
  }
}
</script>

 

GitHub 加速计划 / eleme / element
54.06 K
14.63 K
下载
A Vue.js 2.0 UI Toolkit for Web
最近提交(Master分支:3 个月前 )
c345bb45 7 个月前
a07f3a59 * Update transition.md * Update table.md * Update transition.md * Update table.md * Update transition.md * Update table.md * Update table.md * Update transition.md * Update popover.md 7 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐