Javascript 另存为日志不';下载文件时不显示(使用AJAX调用servlet)
我在单击下载按钮时调用下载servlet。该调用是使用XMLHttpRequest对象的AJAX调用Javascript 另存为日志不';下载文件时不显示(使用AJAX调用servlet),javascript,ajax,jsp,Javascript,Ajax,Jsp,我在单击下载按钮时调用下载servlet。该调用是使用XMLHttpRequest对象的AJAX调用 var xhr = new XMLHttpRequest(); xmlhttp.open("POST","servlet",true); //servlet will be the servlet name xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xmlh
var xhr = new XMLHttpRequest();
xmlhttp.open("POST","servlet",true); //servlet will be the servlet name
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(....);
xhr.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200){
//some logic
}}
我得到的错误是:
虽然Fiddler显示
在答复中记录
服务器端:头('Content-type',//mmime-type);
标题('Content-Disposition','attachment;filename=test.txt')
这是因为您的
xhr.onreadystatechange
已经在处理下载。您可以尝试使用一个隐藏的
和一个隐藏的
来触发下载,而不是使用XHR。请您提供一些示例帮助。我需要使用IFrame来处理整个AJAX请求吗?不,如果你想触发下载,你根本不用AJAX。只需使用一个表单,让它指向iframe,然后提交该表单。实际上,我会冻结屏幕,直到进入ReadyStateChange。所以我在那里使用AJAX。。。。我可以用IFrame做类似的事情吗,,?有什么方法可以让我在OnReadyStet中处理下载更改本身吗?我认为这仍然是可能的。尝试收听iframe的load
事件。