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