gpt4 book ai didi

php - 您可以根据 ajax 响应中提交的表单数据提示下载吗?

转载 作者:可可西里 更新时间:2023-10-31 23:43:46 25 4
gpt4 key购买 nike

我使用 AJAX POST 将表单数据发送到外部脚本并尝试在提交时隐藏表单并提示用户下载脚本。

脚本本身运行良好(使用 fpdf 输出 pdf 文件以供下载)。出于某种原因,提示用户下载,但从未成功。

我的 Ajax 请求当前是:

        $.ajax({
url: "file.php",
type: "POST",
data: data,
cache: false,
success: function (html) {
//hide the form
$('#form').fadeOut('slow');

//display results
$('#form_results').fadeIn('slow');
$("#form_results").html(html);
}
});

file.php(它自己)将使用 FPDF 生成并显示 PDF。通过将输出设置为 I,文档将输出到浏览器,设置为“D”,如果我只是直接访问 file.php,它通常会强制下载。

有什么想法吗?

最佳答案

不幸的是,您不能直接从 ajax 调用强制下载。您最好的选择是通过 ajax 提交表单并让 ajax 响应一个 url,您可以将用户重定向到开始下载的 url。但是,仅供引用,使用 location.href 到发送 header 以强制在 IE 中下载的页面将导致黄色安全栏出现在页面顶部。这发生在 IE8 中,不确定其他版本。 FF 和 Chrome 没有问题。

编辑:

只是想补充一点,当您将某人重定向到强制下载的页面时,他们实际上并没有离开他们当前所在的页面。所以他们不必重新加载 ajax 页面或任何东西。下载对话框只会出现。所以如果你在 index.php 上并且你说 location.href='download.php' 并且 download.php 强制下载。您只需获得下载对话框,不要离开 index.php。

编辑2:

实际上已经有很多关于这个的问题。

https://stackoverflow.com/search?q=force+download+over+ajax

关于php - 您可以根据 ajax 响应中提交的表单数据提示下载吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6077886/

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