SCRIPT5: доступ запрещен в IE9 при загрузке файла

При публикации формы с полем загрузки файла с помощью document.forms[0].submit() то есть 9 мы получаем ошибку, которая говорит: SCRIPT5: Access is denied

Если я нажму еще несколько раз, он будет работать нормально.

Как обходной путь, я поймал ошибку и попробую еще несколько раз, которая, кажется, работает отлично.

Есть ли объяснение этому? Код работал годами во всех других популярных браузерах.

Код также отлично работает в IE9, если браузер установлен в режим совместимости с IE9, но это не то, над чем мы имеем общий контроль.

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

1 ответ

Решение

Оказывается, проблема безопасности связана с тем, что мы запускаем код отправки файла во всплывающем окне. Всплывающее окно было открыто с помощью window.open, в котором в качестве запрошенной страницы была пустая строка. Затем мы разместили форму в этом окне.

Проблема заключается в том, что URL всплывающего окна по умолчанию имеет значение about:blank, если не указано. Видимо, about:blank считается небезопасным, поэтому при попытке POST-файла вернуть его в исходный домен SCRIPT5: Access is denied возникает ошибка.

Решение состоит в том, чтобы использовать небольшую заглушку html-страницы, чтобы открыть и затем выполнить публикацию. Как только файл выбран, сообщение ФАЙЛ не видит ошибки, и файл создает его по желанию.

Другие вопросы по тегам