使用form请求下载文件

/*===================post请求下载文件
 * apiUrl:'',  //下载地址
 * params:{name:value}, //要发送的数据
 */
export const downloadExcelByPost = function(apiUrl, params) {

  let $iframe = $('<iframe id="rfFrame" name="rfFrame" src="about:blank" style="display:none;"/>');
  let $form = $('<form target="rfFrame" method="post" />');
  $form.attr('action', URL + apiUrl);
  for (let key in params) {
    if (params[key]) {
      $form.append('<input type="hidden" name="' + key + '" value="' + params[key] + '" />');
    } else {
      $form.append('<input type="hidden" name="' + key + '" />'); // 传null
    }
  }
  $iframe.append($form);
  $(document.body).append($iframe);
  $form[0].submit();
};

/*===================get请求下载文件
 * apiUrl:'',  //api
* data: 参数对象
 */
export const downloadExcelByGet = function (apiUrl, data) {
  let url =  URL + apiUrl;

  let $iframe = $('<iframe id="getFrame" name="getFrame" src="about:blank" style="display:none;"/>');
  let $eleForm = $('<form target="getFrame" method="get"></form>');
  // "https://codeload.github.com/douban/douban-client/legacy.zip/master"
  $eleForm.attr("action", URL + apiUrl);
  for (let key in data) {
    if (data[key]) {
      $eleForm.append('<input type="hidden" name="' + key + '" value="' + data[key] + '" />');
    } else {
      $eleForm.append('<input type="hidden" name="' + key + '" />'); // 传null
    }
  }
  $iframe.append($eleForm);
  $(document.body).append($iframe);
  $eleForm.submit();

};
/*===================下载文件
* method: 请求方式  post  get
 * apiUrl:'',  //下载地址
 * params:{name:value}, //要发送的数据
 */
export const downloadExcel = function(method, apiUrl, params) {

  let $iframe = $('<iframe id="rfFrame" name="rfFrame" src="about:blank" style="display:none;"/>');
  let $form = $(`<form target="rfFrame" method=${method} />`);
  $form.attr('action', URL + apiUrl);
  for (let key in params) {
    if (params[key]) {
      $form.append('<input type="hidden" name="' + key + '" value="' + params[key] + '" />');
    } else {
      $form.append('<input type="hidden" name="' + key + '" />'); // 传null
    }
  }
  $iframe.append($form);
  $(document.body).append($iframe);
  $form[0].submit();
};

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容