2014-01-23 2 views
0

У меня есть ссылка в сообщении электронной почты, который выглядит следующим образом:Как получить браузер подсказывать, чтобы открыть или сохранить АЯКС ответ

...DownloadReport?id=1 

Этот первый перенаправляет на страницу входа в систему, где пользователь входит в систему при входе в систему. успех, я бегу это JavaScript, чтобы вернуть фактический отчет:

function getReport() { 
     $.ajax({ url: "/PropertySearch/Order/GetReport" }); 
} 

ответ на это включает в себя отчет (это TIF). Однако браузер не появляется «Хотите открыть или сохранить этот документ?».

Как я могу заставить браузер распознать, что ответ является документом и, таким образом, предлагается открыть или сохранить?

+0

Вы перестаете использовать ajax, вместо этого перенаправляете на отчет обычным способом и поставляете соответствующие заголовки, где вы устанавливаете размещение контента на «вложение» и т. Д. – adeneo

+0

ОК, это работает. Изменено тело на 'window.location.href ="/PropertySearch/Order/GetReport ";' –

ответ

1

Для этого вам не обязательно нужен Ajax. Просто ссылки достаточно, если вы установите content-disposition в attachment в код сервера. Таким образом, родительская страница останется открытой, если это была ваша главная проблема (почему бы вам без необходимости выбрать Ajax для этого в противном случае?). Кроме того, нет никакого способа справиться с этим асинхронно. PDF не является символьным. Это двоичные данные. Вы не можете делать такие вещи, как $ (element) .load(). Вы хотите использовать совершенно новый запрос для этого. Для этого <a href="pdfservlet/filename.pdf">pdf</a> идеально подходит.

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