2014-10-29 6 views
1

Я новичок в EXTJS4.2 и веб-разработке, изучая, но нуждаюсь в некотором понимании области, которую меня путают.EXTJS 4.2 - скачать PDF через REST API

Код AJAX вызывает API POST REST через входные параметры JSON, которые будут загружать PDF-файл.

Во время моего исследования, некоторые пользователи отметили, что это не представляется возможным использовать AJAX для загрузки PDF, другие сообщения предлагают использовать AJAX с отправкой формы Params для загрузки PDF с помощью IFRAME,

Итак, я немного смущенный, поскольку я не понимаю, что мне нужно делать, я пробовал несколько вещей, не повезло.

Может ли кто-нибудь предоставить какой-то фон о том, что возможно, а что нет, и о том, как я на самом деле достигаю этого, не могу ли я написать ответText в файл?

Я ищу использовать решение, которое будет работать во всем браузере, поэтому пусть EXTJS сделает подъем.

Не уверен, насколько это помогает, но это то, что тип содержимого ответа выглядит

Transfer-Encoding: chunked 
Content-Type: application/pdf;charset=utf-8 
Content-Disposition: attachment;filename=1428140714.pdf 

ответ

3

Хотя вы можете загрузить файл с помощью Ajax, нет никакого способа, как вызвать браузер сохранить диалог так загруженный файл останется в памяти.

К счастью, решение легко: вы отправляете запрос от клиента с target, являющимся скрытым iframe. Появится диалоговое окно сохранения браузера, пользователь может выбрать место для сохранения и сохранить файл. Вы можете удалить iframe впоследствии.

Вы можете увидеть его в действии здесь: http://extjs.eu/ext-examples/#downloading-file

+0

Привет Саки, спасибо за ответ, я ценю это. Я проверил ваш пример, очень жаль, но я все еще немного смущен. API REST Я поддерживаю только параметры JSON с заголовком application/json. Я играл с ним, но не мог заставить его работать, я использую запрос AJAX, я немного запутался в том, как целевая часть вписывается в это, не попадает ли цель в обработчик успеха? – user2574678

+0

Вы НЕ МОЖЕТЕ скачать файл через Ajax, чтобы вы могли забыть REST, JSON и прокси. Поэтому вам нужна форма (что-то отправить, сгенерировать запрос) и iframe в качестве цели - для предотвращения навигации из сайта. – Saki

+0

Получил это ... спасибо ... – user2574678

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