加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 你能否根据ajax响应中的表单提交数据提示下载?

发布时间:2020-12-13 22:30:39 所属栏目:PHP教程 来源:网络整理
导读:我使用 AJAX POST将表单数据发送到外部脚本并尝试在提交时隐藏表单并提示用户下载脚本. 脚本本身运行良好(使用fpdf输出pdf文件进行下载).出于某种原因,提示用户下载虽然从未通过. 我的Ajax请求目前是: $.ajax({ url: "file.php",type: "POST",data: data,ca
我使用 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,您可以将用户重定向到开始下载.但是,仅仅是一个FYI,使用location.href来发送一个页面以强制在IE中下载将导致黄色安全栏出现在页面顶部.这种情况发生在IE8中,不确定其他版本. FF和Chrome没有问题.

编辑:

只是想添加,当你将某人重定向到强制下载的页面时,他们实际上并没有离开他们当前所在的页面.所以他们不必重新加载ajax页面或任何东西.下载对话框将显示出来.所以如果你在index.php上,你说location.href =’download.php’和download.php强制下载.您只需获取下载对话框,不要留下index.php.

EDIT2:

实际上已经有很多关于此的问题.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读