通过PHP从Iframe下载文件时显示“另存为”对话框

我之前已经问过类似的问题,但我相信这个问题有些不一致。

我的网页上有一个Iframe 。 此iframe从其他某个域加载页面(跨域脚本正在运行)。 现在当我点击这个iframe中的一个按钮时,它通过jQuery发出一个AJAX请求,并在PHP服务器上创建一个文本文件。 现在我希望出现一个正常的“另存为”对话框,以便我可以从服务器下载该文件。

我已经在PHP端尝试了所有Content-Dispositionheader()函数,但是虽然在服务器上成功创建了文件,但是“另存为”对话框没有出现。 我认为,问题是我想从iframe触发文件下载,iframe正在从其他域加载内容。

这有什么解决方法吗?

谢谢。

我自己找到了解决方案。 而不是AJAX使用Iframe技术。 以下jQuery代码应该写在iframe中。 它通过iframe触发下载,而不是向服务器发出AJAX请求。

 $(document).ready(function(){ $('#download').click(function(){ var ifr = $(''); $('body').append(ifr); var iframeURL = 'http://you_domain.com/download.php?str='+encodeURIComponent(data_to_be_posted); ifr.attr('src', iframeURL); return false; }); }); 

这是download.php的代码: