Показать сообщение отдельно
  #1 (permalink)  
Старый 31.10.2013, 13:46
Новичок на форуме
Отправить личное сообщение для Коля Дубр Посмотреть профиль Найти все сообщения от Коля Дубр
 
Регистрация: 31.10.2013
Сообщений: 3

IE, отправка формы с файлом через трехкратный try-catch
Привет, коллеги!

Столкнулся со странным поведением IE.

Есть скрипт, который:
- по клику на ссылке активирует input[type=file]
- по change на input[type=file] создает форму, перемещает в нее инпут с выбранным файлом и субмитит в iframe.

В ИЕ10 при form.submit() бросается исключение "Отказано в доступе". Самое прекрасное - если повторить отправку в трехкратном try-catch, с третьей попытки форма отправляется.

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

submit 1 failed: Error: Отказано в доступе.
submit 2 failed: Error: Отказано в доступе.
submit 3 ok


Боевая задача - заменить стандартный инпут на красивую кнопку при использовании библиотеки jQuery Ajax File Upload. Добавление хака с трехкратным try-catch в исходник либы помогло, но использовать это странное решение в продакнше, без понимания природы проблемы, не хочется.

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

P.S. в комментах в блоге мне пишут, что воспроизводится также в IE9, сам не смотрел да, так и есть.

Последний раз редактировалось Коля Дубр, 31.10.2013 в 21:00.
Ответить с цитированием