问题描述
我正在尝试从 Rails 6 中的服务器发送一个 .xlsx(使用“caxlsx”gem 来生成文件)到在 Vuejs 中制作的客户端。
这是我的后端控制器
def export_data
respond_to do |format|
format.xlsx {render xlsx: 'export_data',filename: "data-people-"+Time.Now.strftime("%-d %b %Y")+'.xlsx',disposition: "inline" }
end
end
这是我从前面打来的
axios
.get("/people/export_data.xlsx",{params:{
filter_unit: this.filter_unit,}},{
responseType: 'blob',headers: { 'Accept': 'application/vnd.ms-excel' }
}).then((response) => {
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download','file.xlsx');
document.body.appendChild(link);
link.click();
this.isLoading = false
});
这会为我生成一个下载对话框,但我可以下载的文件已损坏。另一方面,如果我直接在浏览器中插入控制器路径,文件就会正确下载,所以我认为问题不在后端,除非我不明白。
我做错了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)