vue实现下载图片跨域问题

下载图片对应js代码


	function down(){
		downloadByBlob(url,'测试.jpg')
	}
	function downloadByBlob(url,name) {
	    let image = new Image()
	    image.setAttribute('crossOrigin', 'anonymous')
	    image.src = url
	    image.onload = () => {
	      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)
	      canvas.toBlob((blob) => {
	        let url = URL.createObjectURL(blob)
	        download(url,name)
	        // 用完释放URL对象
	        URL.revokeObjectURL(url)
	      })
	    }
	  }
	  function download(href, name) {
	    let eleLink = document.createElement('a')
	    eleLink.download = name
	    eleLink.href = href
	    eleLink.click()
	    eleLink.remove()
	  }

一般都会存在跨域问题
配置跨域代理,在项目根目录下创建vue.config.js写进去就行

module.exports = {
    devServer:{
        disableHostCheck: true, // 让vue不强制要求使用host来访问
        host:'localhost',
        port:8080,
        proxy:{
                "/api":{//使用的时候直接 /api/路径,代理服务器会自动检测出/api开头的,并实现代理
                    target:"http://localhost:8000",
                    ws:true,
                    changeOrigin:true,
                    pathRewrite:{
                        "^/api":""
                    }
                }
                 }
    },
    productionSourceMap:true,
    chainWebpack:(config)=>{
        config.plugins.delete('prefetch');
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值