axios下载pdf

news/2024/7/19 14:21:37 标签: python, java, javascript, js, ajax

一般情况下,网页上下载资源,都是通过<a href="https://aaa.com/download?a=b">选组</a>连接跳转之后,会自动下载,说白了就是get请求
这种是最简单的,但是有时候满足不了要求,比如添加header参数等。

postman是个好东西,可以通过点击Send and Download来实现。如果只是进行send操作,那返回的就是流数据

前端用的axios发起的请求,那axios如果发送下载操作呢

function downloadFile () {
    let data = {
      'pageSize': 10,
      'producer': 3,
      'country': 'ke'
    }

    axios({
      method: 'get',
      url: 'http://127.0.0.1:9090/download',
      params: data,
      responseType: 'blob'
    }).then((res) => {
        console.log('headers', res.headers)
        let fileName = res.headers['content-disposition'].split('=')[1]
        handle(res.data, fileName)
      }
    )
  }

  function handle (data, fileName) {
    // 文件导出
    if (!data) {
      return
    }
    let url = window.URL.createObjectURL(new Blob([data], { type: 'application/pdf' }))

    const a = document.createElement('a')
    a.style.display = 'none'
    a.download = fileName
    a.href = url
    a.click()
    if (document.body.contains(a)) {
      document.body.removeChild(a)
    }
  }

注意点

  1. type: 'application/pdf' 是需要处理下,如果指定为pdf,那下载的文件名后缀就是pdf。
  2. 响应头'content-disposition'如果为空,有可能是服务端跨域未处理该头。
    比如如果是nginx处理的,需要加add_header 'Access-Control-Expose-Headers' 'Content-Disposition';

OK,简简单单!


http://www.niftyadmin.cn/n/605876.html

相关文章

GIL 多进程实现方式 锁 进程间通信 进程池

多进程1.GIL(全局解释锁)导致线程不能利用多核优势 2.多进程实现方式&#xff08;函数式&#xff0c;继承式&#xff09; 3. t is join daemon name join#帮助理解GIL1.计算机的核心是CPU&#xff0c;它承担了所有的计算任务。它就像一座工厂&#xff0c;时刻在运行。2 .假定工…

ASP.NET中实现中文简/繁体自动转换的类

在中文网站开发中,为了满足台湾/香港等有中文繁体阅读习惯的用户,很多网站需要实现中文简/繁体转换。 当然在实际的开发中&#xff0c;还要注意网站的图片上如果有中文的&#xff0c;也需要根据当前显示的是简体&#xff0c;还是繁体进行 切换&#xff0c;否则无法达到效果&…

java修改user-agent_设置随机 User-Agent

本文转载自以下网站: Scrapy 中设置随机 User-Agent 的方法汇总 https://www.makcyun.top/web_scraping_withpython14.html一行代码搞定 Scrapy 中的随机 UA 设置。摘要&#xff1a;爬虫过程中的反爬措施非常重要&#xff0c;其中设置随机 User-Agent 是一项重要的反爬措施&…

C语言之#define用法(宏定义命令)

2019独角兽企业重金招聘Python工程师标准>>> http://www.360doc.com/content/11/0904/16/466494_145736611.shtml 转载于:https://my.oschina.net/u/245046/blog/95045

删除字符串最后一个字符的几种方法

偶然看到的&#xff0c;记录一下&#xff0c;以免忘记字符串&#xff1a;string s "1,2,3,4,5,"目标&#xff1a;删除最后一个 ","方法&#xff1a; 1、用的最多的是Substring&#xff0c;这个也是我一直用的 s s.Substring(0,s.Length -…

WebService中传2进制文件(ASP.NET C#实战例子)

function StorePage() { ddocument; td.selection?(d.selection.type!None?d.selection.createRange().text:):(d.getSelection?d.getSelection():); void(keyitwindow.open(http://www.365key.com/storeit.aspx?tescape(d.title)&uescape(d.location.href)&cescap…

java前端开发面试题_总结一下这些天的web前端开发面试题

1.前端页面的构成&#xff1f;分别有哪些功能&#xff1f;分层&#xff1a;1)结构层(html)structural layer由HTML或者XHTML之类的标记语言负责创建&#xff0c;即&#xff1a;标签&#xff1b;2)表示层(css)presentation layer解决结构层如何显示的问题。3)行为层(js)behavior…

关于监控的问题

1关于监控要监视哪几项&#xff1f; 答&#xff1a;要监控CPU的负载率、网络的连通性、硬盘的IO还有系统的进程。 2哪些因素会让CPU负载变高 答&#xff1a;大量的IO会消耗硬盘和CPU的使用率、增加CPU负载、还有大量的进程。转载于:https://blog.51cto.com/guqingbaba/1085689