Подобная проблема возникла у нас 12 марта 2012 года, когда был выпущен Safari 5.1.4.Проблема возникает и в Safari 5.1.5.Это происходит как в Windows, так и в Mac-версиях Safari.
В нашем случае состояние представления, отправляемое Safari, было полным состоянием представления, к сожалению, это было для предыдущей страницы, а не для публикуемой страницы.
Чтобы проверить это
- Сначала перед отправкой проверьте состояние просмотра, просмотрев источник на странице, где возникла проблема.Обычно это кодируется base64 и может быть зашифрован.Если на вашем сайте он зашифрован, возможно, вам придется отключить его, чтобы проверить состояние просмотра.Вы можете найти в Интернете декодер Base 64. Существует несколько сайтов, в которые можно вставить строку __Viewstate и декодировать ее.
- Отправьте страницу и получите ошибку.Если вы получите пользовательскую ошибку в браузере, она покажет вам значение viewstate, полученное сервером.Если нет, перейдите в журнал событий приложений на сервере и найдите зарегистрированное сообщение об ошибке.Декодируйте состояние просмотра в сообщении так же, как вы делали это на шаге 1.
- Изучите содержимое обоих состояний просмотра. Обычно по данным вы сможете определить, принадлежит ли состояние просмотра к странице, на которой размещается сообщение.или на какой-либо другой странице.
Так что, если вы обнаружите, что они отличаются, возможно, вы столкнулись с проблемой, с которой мы столкнулись.
В нашем случае код-нарушитель, вызвавший проблему, действительно былна предыдущей странице.В PageOne мы подключили событие window.onload и вызывали форму [0] .submit.Сервер ответил перенаправлением 302 на PageTwo.aspx.Браузер правильно ответил, выполнив GET из Page2.aspx.Когда пользователь нажимает кнопку отправки на PageTwo.aspx, возникает ошибка проверки, в нашем случае safari отправляет значение viewstate для предыдущей страницы, pageone.aspx
В нашем случае мы обошли проблемувызов setTimeout ("DoWork ()", 10);в событии window.onload.Затем поместите наш код в функцию DoWork ().
Мы отправили отчет об ошибке в Apple.
Надеюсь, это поможет.