前端解决图片跨域问题vue-cropper组件“has been blocked by CORS policy: No ‘Access-Control-Allow-Origin“

直接上问题

vue-cropper解决图片跨域问题

跨域问题原图
遇到这个问题主要是跨域请求,
一般情况下用js把图片转base64传输就能解决

// 设置头像base64
    setAvatarBase64(src, callback) {
      let _this = this;
      let image = new Image();
      // 处理缓存
      image.src = src + '?v=' + Math.random();
      // 支持跨域图片
      image.crossOrigin = "Anonymous";
      image.setAttribute('crossOrigin', 'anonymous')
      image.onload = function () {
        let base64 = _this.transBase64FromImage(image);
        callback && callback(base64);
      }
    },
    // 将网络图片转换成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);
      // 可选其他值 image/jpeg
      return canvas.toDataURL("image/png");
    }

上述代码返回的是一个base64图片字符串,直接当成img传入vue-cropper即可

七牛云解决图片跨域问题

由于本人使用的七牛云作为文件服务,七牛云不开启https不会存在跨域问题,开启了https需要做以下处理

  • 第一步

    打开七牛云控制台
    空间管理 -> 空间设置 -> 跨域设置
    在这里插入图片描述

  • 第二步

    在这里插入图片描述
    点击域名管理,选择域名配置
    在这里插入图片描述
    在这里插入图片描述

总结

完成上述所有配置基本可以大部分图片跨域问题,当然有其他文件服务器按上述配置下响应头即可,还有什么其他情况遇到的问题欢迎评论补充(* ̄︶ ̄)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值