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

本文介绍了如何使用Vue-cropper组件处理图片跨域问题,通过将图片转为base64格式来规避。同时,详细讲解了在启用HTTPS的七牛云服务中设置跨域策略的步骤,包括在空间管理和域名管理中进行配置。通过这些方法,可以有效解决大部分图片跨域问题。

直接上问题

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需要做以下处理

  • 第一步

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

  • 第二步

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

总结

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

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值