我需要在jquery移动应用程序中呈现文件列表(在桌面和移动设备上运行)。主要是从桌面我需要从列表中下载文件。我有一个简单的href如下:
<a href="download.php?file=test.txt">test.txt<a>
问题是当用户点击链接时,会显示文件的实际内容。我希望用户能够在本地保存文件。我相信我正确设置标题。这是标题的Firebug转储:
Response Headers
Accept-Ranges bytes
Cache-Control public, must-revalidate, post-check=0, pre-check=0
Connection Keep-Alive
Content-Disposition attachment; filename="test.txt"
Content-Length 95
Content-Type application/octet-stream
Date Mon, 25 Mar 2013 17:35:26 GMT
Expires -1
Keep-Alive timeout=5, max=99
Pragma public
Server Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/1.0.0-fips
Request Headers
Accept text/html, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Cookie PHPSESSID=bbf2549f793aed8565b44d532a3088dc; path=%2F; fileDownload=true
Host 192.168.1.225
Referer http://192.168.1.225/
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0
X-Requested-With XMLHttpRequest
我正在通过Windows机器上的浏览器进行测试。
我在这里缺少什么?
答案 0 :(得分:0)
答案相对简单。 Jquery mobile使所有链接都成为Ajax请求(我已经忘记了)。解决方案是在链接中添加“rel =”external“以使其成为非ajax链接,如下所示:
<a href="download.php?file=test.txt" rel="external">test.txt<a>
感谢Alvaro G. Vicario指出我正确的方向。
答案 1 :(得分:0)
你也可以在jQuery Mobile之前添加这个脚本,它对我有用。
<script>
$(document).bind("mobileinit", function(){
$.mobile.ajaxEnabled = false;
});
</script>