如何使用 azure logic app action 在浏览器中下载文件

How to use azure logic app action to download files in browser

我最初创建了一个逻辑应用程序,给定 JSON 有效载荷,运行 一个存储过程,将结果转换为 CSV table,然后将 CSV 通过电子邮件发送到指定的电子邮件帐户。不幸的是,要求略有变化,他们希望直接在浏览器中下载而不是通过电子邮件发送 csv。

我无法获取 HTTP 响应操作来告诉浏览器使用 Content-Disposition header 下载文件。看起来这是有意从请求中删除的。有没有人知道另一个动作(也许是一个函数?)可以用来代替 HTTP 响应来让网络浏览器下载文件而不是在响应中将其作为文本返回 body?

由于某种原因,响应操作似乎确实不支持 Content-Disposition header。可能最简单的解决方法是通过启用 CORS 的简单 HTTP-triggered Azure 函数(或服务器上的 API)来代理请求,该函数仅从逻辑应用程序获取文件,然后 returns它附有 Content-Disposition header。

注意。不要依赖 <a download="filename"> - 大多数支持下载属性的浏览器只尊重 same-origin 请求。