使用jquery强制下载

时间:2012-09-18 20:47:47

标签: php jquery force-download

我需要制作一个按钮,当我点击它时,如果我有这样的形式,我也会这样做:

<form action="myscript.php" method="post">
    <input type="hidden" name="items[]" value="..." />
    <input type="submit">
</form>

然后点击提交。在 PHP 方面,我使用正确的标题并强行下载。

我之所以无法在此处使用表单,是因为我有很多参数,而且在 HTML 标记中使用表单标记并不容易。而且,这些参数是动态制作的,所以......

但是,如果我只使用$.ajax当然它不会工作,我会在这个ajax请求中得到php响应,但浏览器不会开始下载文件< / p>

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

只需重定向到下载页面,如果该页面上有正确的标题,它就不会更改它们所在的页面,只需提示下载该文件。

答案 1 :(得分:1)

简单回答:不要使用GET。改为使用POST!

<script>
 var info = ""; // Somewhere for the response to go
 var obj = $.post(
             raw_url,
             { var1:value1, var2:value2 },
             function(data) { info = data; } );
</script>

在PHP方面,您将收到任何基于数组的数据作为数组(因此,如果value2是一个javascript数组,您将在PHP中以数组形式接收它。)