美文网首页
图片下载非同源跨域cross解决

图片下载非同源跨域cross解决

作者: litielongxx | 来源:发表于2020-10-28 18:26 被阅读0次

    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或者其他都可以。

    相关文章

      网友评论

          本文标题:图片下载非同源跨域cross解决

          本文链接:https://www.haomeiwen.com/subject/foecvktx.html