Javascript 从AJAX检索XML数据,提示用户下载?
我正在处理一个项目的客户端部分,目前从服务器接收到一块XML数据,我试图获取这些信息并提示用户下载。这可能吗 这是我的密码:Javascript 从AJAX检索XML数据,提示用户下载?,javascript,jquery,ajax,http,response-headers,Javascript,Jquery,Ajax,Http,Response Headers,我正在处理一个项目的客户端部分,目前从服务器接收到一块XML数据,我试图获取这些信息并提示用户下载。这可能吗 这是我的密码: var holder = jQuery.ajax({ type: "POST", url: "xml_comes_back.json", data: {param : info, param2 : info2
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')
}
});
}
将他们链接到生成文件的页面,包括内容类型头,以便强制他们下载(或使用JavaScript重定向)。我相信现代浏览器只需下载它,而不需要打开新窗口。如果从ajax获得的信息是url,那么只需使用
“window.location=data”指向一个页面,该页面将具有适当的内容类型和内容配置,从而强制用户下载。我想它不会打开一个新的选项卡/窗口。你没有提到你遇到了什么错误,或者它是如何工作的。对不起,我基本上得到了正确的数据,但是链接没有任何作用,我不知道如何进入下一步!问题是,我从ajax调用中得到的是纯XML,没有URL。有没有办法将它们发送到那里?当ajax请求从服务器下载时,服务器将生成一个临时文件(id存储为会话/数据库/您希望存储的id),并将id作为xml发送到客户端。客户端将使用id重定向到下载文件,id为download.file?id=1234。
Content-Disposition:attachment; filename=theFile.xml
Content-Type:application/force-download;charset=UTF-8