vue-cropper解决图片跨域问题

近期加入了一个学校某团队一起做项目,被一个前端问题卡了好一会,浅浅记录一下

前端控制台报错如下:
在这里插入图片描述

看到Access to…立马反应到是跨域问题,没想到图片也有跨域问题(课业都是关于后端学习,前端并不是很熟悉)
以下是代码:

        <vue-cropper
          ref="cropper"
          :autoCrop="options.autoCrop"
          :autoCropHeight="options.autoCropHeight"
          :autoCropWidth="options.autoCropWidth"
          :fixedBox="options.fixedBox"
          :img="options.img"
          :info="true"
          @realTime="realTime"
        >
        </vue-cropper>

解决方案:在js中的edit函数下将图片格式转为base4即可
代码如下:

 created() {
      this.options.img = this.avatar
    },
 edit(id) {
   this.visible = true;
   this.id = id;

   this.setAvatarBase64(this.avatar, (base64) => {
     this.options.img = base64;
   });
 },
 setAvatarBase64(src, callback) {
   let _this = this;
   let image = new Image();
   image.src = src + '?v=' + Math.random();
   image.crossOrigin = "*";
   image.onload = function () {
     let base64 = _this.transBase64FromImage(image);
     callback && callback(base64);
   }
 },
 transBase64FromImage(image) {
   let canvas = document.createElement("canvas");
   canvas.width = image.width;
   canvas.height = image.height;
   let ctx = canvas.getContext("2d");
   ctx.drawImage(image, 0, 0, image.width, image.height);
   return canvas.toDataURL("image/png");
 }
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值