В нашем приложении нам необходимо реализовать следующий сценарий:
- Запрос отправляется от клиента
- Сервер обрабатывает запрос и генерирует файл
- Сервер возвращает файл в ответ
- Клиентский браузер отображает всплывающее диалоговое окно загрузки файлов и позволяет пользователю загружать файл
Наше приложение представляет собой приложение на основе ajax, поэтому нам было бы очень легко и удобно отправлять запрос ajax (например, используя функцию jquery.ajax()
).
Но после googilng оказалось, что загрузка файлов возможна только при использовании запроса POST без аякса (как описано в этом популярном потоке SO). Поэтому нам нужно было внедрить более уродливое и более сложное решение, которое требовало построения структуры HTML form
с вложенными скрытыми полями.
Может ли кто-нибудь объяснить простыми словами, почему эти запросы ajax не могут использоваться для загрузки файла? Что за механика?