2012-02-27 3 views
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); 

EDIT:

действительно нашел это решение:

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, вместо того, чтобы иметь эту длинную уродливую буквенно-цифровую строку?

ответ

1

Вы можете использовать window.open иметь диалоговое окно Сохранить как, например

window.open('print?parameters...','_blank'); 
+0

Это не хватает делает то, что я хочу. Единственная проблема заключается в том, что на мгновение, когда мой ответ возвращается, новая вкладка открывается и закрывается мгновенно, что не очень приятно. – Sfairas

+0

не используют веб-браузер, тогда –

Смежные вопросы