2
我做了一個ExtJS AJAX請求,我希望標準瀏覽器的「另存爲」對話框顯示給用戶。要下載的文件可以是pdf,jpg或png文件。ExtJS AJAX另存爲對話框
目前AJAX請求已成功提交,但由於它是異步的,因此不會出現對話框。
我可以根本不使用AJAX,但是在提出請求之前我需要使用很多JavaScript代碼,並且我不覺得將它重寫爲java。
我的代碼如下所示:
var params = getPrintInfo(form);
Ext.Ajax.request({
url : 'print',
method : 'POST',
params : {
customData: params.customData,
dpi: params.dpi,
format: params.format,
grid: params.grid,
title: params.title
},
autoAbort : false,
success : function(result, request) {
if(result.responseText==''){
//display error message
}else{
// display save as dialog box
}
}
});
在我的控制,我設置了標題爲:
httpResponse.setHeader("Content-disposition", "attachment; filename=" + this.config.getString("print.file.name")+outputType);
編輯:
實際上已發現此解決方案:
Ext.DomHelper.append(document.body, {
tag: 'iframe',
frameBorder: 0,
width: 0,
height: 0,
css: 'display:none;visibility:hidden;height:1px;',
src: 'http://blabla.com/f75e927b-2041-473e-86ba-cbbc60dbc285.pdf'
});
現在的問題是:如何將pdf名稱更改爲更高級別,例如map.pdf,而不是使用那麼長的醜陋字母數字字符串?
短的這我想要做什麼。唯一的問題是,一會兒,當我的迴應回來時,一個新標籤打開並立即關閉,這並不是很好。 – Sfairas 2012-04-10 15:40:00
然後不要使用網絡瀏覽器 – 2012-04-10 16:36:24