javascript
  • jquery
  • html
  • 2012-08-06 93 views 3 likes 
    3

    我需要下载一个文件(test.xml)并允许/提示用户在点击下载按钮时保存文件。该文件驻留在URL“http://localhost/test/test.xml”中。javascript文件下载

    我已经添加HTML代码

    <input type=button value="Download" onclick='javascript:download()/> 
    

    和JavaScript代码是

    function download() { 
        var url = "http://localhost/test/test.xml"; 
         window.open(url, 'Download'); 
    } 
    

    但这打开的页面中的新窗口。如何提示下载并保存文件。任何投入都会有所帮助。谢谢

    +0

    Downvote为Java代码。 – LastStar007 2012-08-06 18:48:11

    +0

    和我想知道,你标记为这个问题的Java? – Shreedhar 2012-08-06 18:48:43

    +2

    他可能只是不知道java和javascirpt是否不同。 – 2012-08-06 18:49:06

    回答

    2

    您必须更改标题中的内容类型。你需要做一些服务器脚本或配置你的网络服务器。

    我用Google搜索的链接,这将有助于你在正确的方向:http://www.boutell.com/newfaq/creating/forcedownload.html

    +0

    你可以在XHR上设置标题...有什么可以做的吗? – AlanFoster 2012-08-06 18:53:40

    +1

    XHR帮助您修改请求,我知道您必须更改响应中的Content-type标头。 – 2012-08-06 18:55:20

    -1

    HTML:

    <input id="downloadthis" value="Download"/> 
    

    JavaScript代码里面:

    $('#downloadthis').click(function() { 
    window.location.href = 'http://localhost/test/test.xml'; 
    }); 
    

    REF:https://stackoverflow.com/a/4864264/405117

    +0

    这是错误的,它不会显示另存为对话框。阅读您正在转介的帖子。 – 2012-08-06 19:27:35

    2

    使用你的初始代码,如果你有权访问后端,被请求的XML时,它添加以下标题:

    Content-disposition: attachment; filename=test.xml; 
    

    另一条途径是使用XMLHttpRequest来获取该文件,然后使用Flash插件保存它。我用这个方法一个位,和闪存瑞士法郎可以发现here

    0

    设定为XML的响应报头中的内容类型是application/xml

    相关问题