1图片下载和其他
图片的下载特殊一些,不像txt/xls其他格式,多会涉及跨域的问题。
1跨域服务端的同源
可以用canvans,或转base64,又或转blob都行。
非同源:
目前可以先试,下载图片时,禁用浏览器缓存,下载。
downloadImg (src, name) {
var x = new XMLHttpRequest() // 禁止浏览器缓存;否则会报跨域的错误
x.open('GET', src + '?t=' + new Date().getTime(), true)
x.responseType = 'blob'
x.onload = function (e) {
var url = window.URL.createObjectURL(x.response)
var a = document.createElement('a')
a.href = url
a.download = name
a.click()
}
x.send()
},
ps:跨域是浏览器本身的行为,为一种设计保护行为,解决一般后端设置cross或者其他都可以。