Отправка формы с помощью IFRAME

Еще одно типичное использование плавающих фреймов IFRAME заключается в том, чтобы отправлять содержимое формы в фоновом режиме, причем это может быть даже форма выгрузки файла, что в обычном случае влечет за собой полную перезагрузку страницы. Ниже следует сценарий CherryPy, который обслуживает операцию выгрузки файла:
import cherrypy
# определите здесь, куда следует поместить выгружаемый файл
local_file_path="/tmp/uploaded_file"
class Content:
#обслуживает передачу файла...
@cherrypy.expose
def upload(self, inbound):
outfile = open(local_file_path, 'wb')
inbound.file.seek(0)
while True:
data = inbound.file.read(8192)
if not data:
break
outfile.write(data)
outfile.close()
# вернуть в качестве ответа простой файл HTML
return "Thanks!"
# запустить вебсервер, который прослушивает порт 8080
cherrypy.quickstart(Content(), '/')

А ниже приводится страница HTML, которая выполняет выгрузку. Когда выгрузка файла запускается с помощью IFRAME, она происходит в фоновом режиме, и сама страница при этом не изменяется, но если выгрузка файла инициируется с помощью кнопки отправки фо
мы, происходит переключение страницы.


Обратите внимание, что в этом примере параметр запроса handleAs имеет значение "html".


Fun with IFRAME Transports!



(body)
enctype="multipart/form-data">
(br /)

(button onclick="javascript:upload();")Submit Via the IFRAME Transport
(/button)
(/body)


Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
DeferredList
JSON
OpenAjax Hub
Внедрение объектов Deferred в функции XHR
Вызов удаленных процедур