用jquery和coldfusion下载ajax文件

时间:2012-08-23 13:19:26

标签: jquery ajax coldfusion download

点击时我有一个链接处理从服务器下载文件的coldfusion页面。当我直接在url中访问文件时,它可以正常工作,所以我知道该部分正在工作。我的下一步是介绍ajax,以便与用户无缝交互。这是我的事件处理程序,带有ajax调用(在初始页面加载时调用事件处理程序):

function fileHandler(){
    $('#attachment').click(function(e){
        e.preventDefault();
        $.ajax({
            type:"get",
            url:"test.cfm",
            data:{name:"john"}
        });
    });
}

但我一无所获。这是我第一次使用jQuery的.ajax()。我通常使用.get()和.load()。我检查了文档,我的语法显示正确。有没有人看到为什么我不能让浏览器提示保存文件的问题?谢谢!

1 个答案:

答案 0 :(得分:3)

你无法触发"另存为"对话框通过Ajax(XMLHTTPRequest)。 Ajax调用将数据从服务器返回到您的javascript应用程序,这是关于使用Ajax的重点。下载文件并将其保存在计算机上只是另一个用例 - 这是一个"浏览器工作"而不是你的。

我解决了这个"问题"通过将隐藏的iframe附加到页面,这将触发"另存为..."对话框,用户不会注意到它。这就像在另一个标签中打开一个地址一样,只是隐藏了它。

$('body').append(
    $('<iframe>', { 
        src: 'test.cfm?name=john' 
    }).hide()
);