0

我正在处理一个项目的客户端部分,并且遇到一种当前从服务器接收 XML 数据块的情况,我正在尝试获取该信息并提示用户下载。这可能吗?

这是我的代码:

 var holder =
    jQuery.ajax({
                type: "POST",
                url: "xml_comes_back.json",
                data: {param : info,
                        param2 : info2
                },
                dataType: ($.browser.msie) ? "text" : "xml",
                success: function(data) { 
                    $('#selector').prev().empty().html('<a href="' + data + '" id="download">Ready for Download</a>');

                    $('#download').click(function() {
                       //Prompt download for xml stored in 'data' here
                    });


                },
                error:function (xhr, ajaxOptions, thrownError) {
                   alert('error')

                }
            });
}

我在尝试实现这一目标时遇到了重大问题。是否可以在没有服务器创建并通过 URL 存储的情况下下载此文件?我只想使用正确的标题动态接收数据并让下载链接正常工作。

这是从 ajax 调用成功返回的响应标头:

Content-Disposition:attachment; filename=theFile.xml
Content-Type:application/force-download;charset=UTF-8
4

2 回答 2

0

将它们链接到生成文件的页面,包括内容类型标头,以便强制它们下载(或使用 JavaScript 重定向它们)。我相信现代浏览器会简单地下载它而无需实际打开新窗口。

于 2013-01-31T18:21:50.080 回答
0

如果您从 ajax 获得的信息是一个 url,那么不仅仅是使用“window.location = data”将用户重定向到一个页面,该页面将具有正确的内容类型和内容配置,这将迫使用户下载。我想它不会打开一个新的标签/窗口。

于 2013-01-31T19:45:33.653 回答