当前位置:   article > 正文

点击a标签下载pdf并解决跨域问题

点击a标签下载pdf并解决跨域问题

 通过设置download来实现点击url下载

<a href="test.pdf" target="Blank" download="模板.pdf">下载</a>

想要的效果:

实际效果: 

此时会跳转的新的页面,展示pdf的内容,download无效,这是因为异步的原因,存在跨域问题,无法实现直接下载

解决跨域问题

 <a style="color: #409eff" @click="download(url, fileName)">下载</a> 
  1. function download(url, filename) {
  2. var url = url;
  3. var xhr = new XMLHttpRequest();
  4. xhr.open('GET', url, true); // 异步
  5. xhr.responseType = 'blob'; // blob 类型
  6. xhr.onload = function () {
  7. if (xhr.status !== 200) {
  8. alert('下载异常!');
  9. return;
  10. }
  11. if (window.navigator.msSaveOrOpenBlob) {
  12. // IE
  13. navigator.msSaveBlob(xhr.response, filename);
  14. } else {
  15. var newUrl = window.URL.createObjectURL(xhr.response);
  16. var a = document.createElement('a');
  17. a.setAttribute('href', newUrl);
  18. a.setAttribute('target', '_blank');
  19. a.setAttribute('download', filename + '.pdf'); // 自定义文件名(有效)
  20. document.body.appendChild(a);
  21. a.click();
  22. document.body.removeChild(a);
  23. }
  24. };
  25. xhr.send();
  26. }

通过这种方式可以解决跨域问题,实现想要的效果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/63570
推荐阅读
相关标签
  

闽ICP备14008679号