1. 程式人生 > >post請求下載excel文件解決方法

post請求下載excel文件解決方法

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' }); });

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

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