日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ajax请求导出Excel的问题【ajax不能下载文件】

發布時間:2024/3/26 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ajax请求导出Excel的问题【ajax不能下载文件】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近要給后臺添加操作日志導出的功能,后臺已經生成.xls文件,本來想只要ajax請求下就完事兒,想象總是美好的,可不管我怎么ajax,想了各種可能原因也無法解決。

問題描述

前端發送ajax【get/post】請求,后端生成excel文件,最后用response輸出文件流,沒有報錯也沒有文件下載提示。

最后網上搜索了一波,遇到過這個問題的還是不少,問題出在ajax本身,解決方法和原因也都找到。

原因

ajax請求只是個“字符型”的請求,即請求的內容是以文本類型存放的。文件的下載是以二進制形式進行的,ajax沒法解析后臺返回的文件流,所以無法處理二進制流response輸出來下載文件。

解決方法

1)使用window.location.href=dataUrl;就可以實現。

當使用window.loaction.href=dataUrl后,點擊“導出操作日志”時,文件下載頁面也跳轉到了datatUrl的地址,使用了history.go(-1)加載歷史列表里的上一頁解決跳轉問題,后來想起用a標簽做的按鈕,使用href=“javascript:void(0);”便可。

href=“javascript:void(0);”意為執行一個js的空方法,這樣就執行了鏈接,頁面不動。

????????2)使用隱藏iframe實現無刷新下載文件

<a href="#" οnclick="downloadFile()">download</a><iframe id="ifile" style="display:none"></iframe>function downloadFile(){var dom=document.getElementById('ifile');dom.src="http:xxxx.com";}隱藏iframe,設置src下載地址,點擊事件觸發事件函數實現下載。


總結

以上是生活随笔為你收集整理的Ajax请求导出Excel的问题【ajax不能下载文件】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。