1. 程式人生 > >下載excel文件無法通過ajax的post請求來直接下載解決方法

下載excel文件無法通過ajax的post請求來直接下載解決方法

post請求無法直接傳送請求下載excel文件,是因為我們在後臺改變了響應頭的內容: 
Content-Type: application/vnd.ms-excel 
導致post請求無法識別這種訊息頭,導致無法直接下載。

解決方法: 
改成使用form表單提交方式即可

/*===================post請求下載檔案
 * options:{
 * url:'',  //下載地址
 * data:{name:value}, //要傳送的資料
 * method:'post'
 * }
 */
var postDownLoadFile = function (options) {
    var config = $.extend(true
, { method: 'post' }, options); var $iframe = $('<iframe id="down-file-iframe" />'); var $form = $('<form target="down-file-iframe" method="' + config.method + '" />'); $form.attr('action', config.url); for (var key in config.data) { $form.append('<input type="hidden" name="'
+ key + '" value="' + config.data[key] + '" />'); } $iframe.append($form); $(document.body).append($iframe); $form[0].submit(); $iframe.remove(); } //匯出 $("#btnExport_year").on('click', function() { var param={}; postDownLoadFile({ url:path + '/monthlyCollection/exportExcelDoc.json'
, data:param, method:'post' }); });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

引數直接放到param中就可以帶到後臺了,

後臺再用request.getParameterNames(); 即可接受到引數

以下是請求例子:

var postDownLoadFile = function (options) {
    var config = $.extend(true, { method: 'post' }, options);
    var $iframe = $('<iframe id="down-file-iframe" />');
    var $form = $('<form target="down-file-iframe" method="' + config.method + '" />');
    $form.attr('action', config.url);
    debugger;
    for (var key in config.data) {
        $form.append("<input type='hidden' name='" + key + "' value='" + config.data[key] + "' />");
    }
    $iframe.append($form);
    $(document.body).append($iframe);
    $form[0].submit();
    $iframe.remove();
}


//匯出
$("#tableDownload").on('click',
        function() {
          var param={};
          postDownLoadFile({
            url:'../sys/advproreport/downExample',
            data:{'advProJson':JSON.stringify(advProJson)},
            method:'post'
          });
});

相關推薦

下載excel無法通過ajax的post請求直接下載解決方法

post請求無法直接傳送請求下載excel文件,是因為我們在後臺改變了響應頭的內容: Content-Type: application/vnd.ms-excel 導致post請求無法識別這種訊息頭,導致無法直接下載。解決方法: 改成使用form表單提交方式即可/*=====

post請求下載excel解決方法

post請求無法直接傳送請求下載excel文件,是因為我們在後臺改變了響應頭的內容: Content-Type: application/vnd.ms-excel 導致post請求無法識別這種訊息頭,導致無法直接下載。 解決方法: 改成使用form表單提交方式即可 /*==

前端下載excel功能的三種方法

light nbsp html github 支持 返回 但是 inpu brush 1 從後端接收json數據,前端處理生成excel下載 JsonExportExcel的github地址:https://github.com/cuikangjie/JsonExpor

jsp下載excel

步驟 eof 關閉 cli tco data- java position web-inf jsp下載excel文件的的實現方法很多,今天也遇到這個問題,亂敲了一陣,終於搞定了,記下來和朋友們分享吧。 假設需要下載excel文件的jsp頁面名為:down.jsp 對應的後臺

後端根據查詢條件生成excel返回給前端,vue進行下載

win urn his rim ech spa href col abi 一、HTML代碼 <el-col :xs="2" :md="2" :sm="3"> <el-button type="primary" style="width:100%;

踩坑錄-利用Apche-POI.XSSFWorkbook.write,處理excel通過response.outputstram下載文,預覽亂碼。

mkdir buffer 文件 關閉流 inpu name code sts xss 問題概要 利用Apche-POI.XSSFWorkbook.write,處理excel文件,通過response.outputstram導出文件,預覽亂碼。 解決辦法 1.檢查設置resp

httpurlconnection下載pdf打不開的原因,和解決代碼

ont 地方 buffere stp rop 文檔 字符 har pro 前幾天遇見一個問題,httpurlconnection發送請求下載pdf文件的時候,文件是下載下來了,但是打不開。 之前並沒有對pdf操作的相關功能,所以一直是使用的字符流讀取內容。 字符流主要針對一

tensorflowjs下載到本地不能加載模型解決方案

ade 分享圖片 b-s 關聯 博客 自定義 for pan cors 大多數情況(非源文件錯誤)下載源文件到本地不能加載模型,那麽你可能需要搭建一個本地WEB服務器。 1、安裝apache或ngnix,可以參照這個博客 2、強烈推薦一個Chrome插件Web Serv

Idea-每次修改JS都需要重啟Idea才能生效解決方法

ngx 的確 窗口 move cat 資源文件 資源 發布 頁面 最近開始使用Idea,有些地方的確比eclipse方便。但是我發現工程每次修改JS或者是JSP頁面後,並沒有生效,每次修改都需要重啟一次Tomcat這樣的確不方便。我想Idea肯定有設置的方法,不可能有這麽不

Linux服務器SSH無法通過DSA證書登錄的解決方法

cep lua yacc type conf htm sshd sys dsa 來源:https://www.cnblogs.com/luanlengli/p/8733704.html 從openssh7.0開始,ssh-dss密鑰被默認禁用。 修改服務器端的openss

linux格式在windows下缺少換行的解決方法

原理:在Linux系統下, '\n'就是一個換行符,而在windows下,它是由回車換行組成,表示為 \r\n 解決方法:使用Notepad++進行文件格式轉換Notepad++開啟文件-->編輯-->文件格式轉換-->轉換為Windows格式

Word格式混亂出錯等排版問題的解決方法

編輯文件的時候,很多同學都苦惱于格式混亂、出錯。文字過胖或過瘦等問題。這裡,小編就教各位幾招,學會後就基本可以對付文件啦。(PS:小編使用的是WORD2013,不過各個版本之間的佈局一致,不用擔心不適用的問題。)在進入教程之前,小編強烈建議諸位使用.docx格式,.doc

web項目中關於引入JS/css, 瀏覽器console出現 net::ERR_ABORTED錯誤的解決方法

can info ons pan 分享圖片 abort 控制臺 -h mage 如圖錯誤: 引入js/css後,控制臺出現的錯誤! 我的錯誤則是因為在靜態文件夾下的原因. 解決:如果要放在webRoot下的靜態(static)文件夾下,需要在springMv

python通過xlwt模塊直接在網頁上生成excel下載

模塊 pri write web tac 函數 com 中文 excel文件 import xlwt import StringIO import web urls = ( ‘/rim_request‘,‘rim_request‘, ‘/rim_export‘,‘rim

.Net MVC 導入導出Excel總結(三種導出Excel方法,一種導入Excel方法) 通過MVC控制器導出導入Excel(可用於java SSH架構)

ets esp llb pat lencod cnblogs 創建 etime mmd public class ExcelController : Controller { // // GET: /Excel/ M

采用OleDB讀取EXCEL 讀取數字後,字符串無法讀取

tex i++ eem pty col ++ lena ons blog   很多人采用OleDB讀取EXCEL文件的時候會發現,當一列數據以數字開頭的時候,後面的字符串無法讀取,今天就給大家分享一下解決此問題的小竅門。   1、把列標題當做數據來讀取(HDR=NO設置把第

Java 通過Xml導出Excel,Java Excel 導出工具類,Java導出Excel工具類

public emp cep sdf value 提交 bsp datetime rtm Java 通過Xml導出Excel文件,Java Excel 導出工具類,Java導出Excel工具類 ============================== ?Copyri

【POI】導出excel,不生成中間直接將內存中的數據創建對象下載到瀏覽器

src sheet xssf xls close creat 下載 position new 不是從InputStream中read,然後outputStream再write @RequestMapping("download4Excel") public v

Oracle: 通過命令行下載安裝

ase nload oracl bsp thp 安裝 nbsp -o lin 1. 導出oracle cookies 參考:https://blog.pythian.com/how-to-download-oracle-software-using-wget-or-curl

【原創】POI 生成Excel下載

pri posit 實現類 row itl utf-8 技術 require servle ι 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 效果圖: 實現 1.在pom中添加依賴: <!-- https://mvnrepository.com