gpt4 book ai didi

javascript - 内容处置:附件不触发下载对话框

转载 作者:IT老高 更新时间:2023-10-28 23:05:12 24 4
gpt4 key购买 nike

尝试在我的 NodeJS 服务器上创建文件下载功能时,我遇到了一些意外行为。我有一个调用一些导出数据函数的 REST (express) API,它在服务器上创建一个 CSV 文件并使用 res.download('path/to/file') 来触发下载。响应头包括

Content-Disposition:attachment; filename="indicators.csv"
Content-Length:30125
Content-Type:text/csv; charset=UTF-8

所以一切似乎都井井有条。

问题是,我从服务器得到纯文本的响应。响应包含 CSV 文件包含的所有数据,但不会像我预期的那样触发浏览器的文件下载对话框。我在 Chrome 和 FF 上都试过了。两个问题都存在。

有什么想法吗?

更新

我设法通过创建一个虚拟表单并使用它的提交操作来进行我的 AJAX 调用来使其工作。但这是一个丑陋的 hack,我仍在寻找更优雅的解决方案。

最佳答案

标题不是问题。问题是您正在通过 ajax 调用查询下载 url,这不会调用浏览器下载对话框。您的选择归结为以下几点:

  1. 使用提交到您的下载网址的表单。与其让用户必须与之交互的可见表单,不如使用 JavaScript 创建一个表单并通过调用 form.submit - Handle file download from ajax post 以编程方式提交它

  2. window.location 指向下载网址。您可以在当前窗口中执行此操作 - download file using an ajax request ,或在一个新的 - res.download() not working in my case

关于javascript - 内容处置:附件不触发下载对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26737883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com