有一个现成的pdf的url, 通过js下载打开总是空白内容, 尝试各种方法都无效, 求助

有一个现成的pdf链接, https://vkceyugu.cdn.bspapp.c...
本身是通过a标签可以直接访问, 但现在的需求是 点击a标签 直接后下载, 而不是直接打开。

  1. 尝试在a标签里+ download 因为跨域所以无效。
  2. 所以转成了blob, 但是不管怎么下载都是空白, 网上方法全试了, 特来求助。
import axios from 'axios'

// 下载pdf
    toDownLoadPdf(url, fileName) {
      axios({
        method: 'GET',
        url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-8e76dff9-ce38-4577-9e5c-398943705060/a5b050b8-3fa1-4436-b231-7b40725de731.pdf',
        responseType: 'blob'  // 网上搜到的方法
      })
        .then((res) => {
          const blob = new Blob([res.data], {
            type: 'application/pdf'  // 网上搜到的方法
          })
          const link = document.createElement('a')
          link.href = URL.createObjectURL(blob)
          link.download = fileName
          link.click()
          URL.revokeObjectURL(link.href)
        })
        .catch(console.error)
    }

https://segmentfault.com/a/11... 另外我把这文章里的代码完全抄过去了, 他提供的pdf也是空白

阅读 5.4k
3 个回答

给你的到底是页面地址,还是文件地址?

尝试在a标签里+ download 因为跨域所以无效。 如果是跨域的话.在服nginx端做个代理转发


 location /filedown/ {
            proxy_pass https://vkceyugu.cdn.bspapp.com;
}

配置好代理之后你得文件路径修改为

https://你得域名/filedown/VKCEYUGU-8e76dff9-ce38-4577-9e5c-398943705060/a5b050b8-3fa1-4436-b231-7b40725de731.pdf

差不多就是这样 试试吧

新手上路,请多包涵

同样的问题
请求时
responseType: 'arraybuffer'
还有就是new Blob([res]) 应该没有data

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题