Updatepanel перестает работать под прокси, и это происходит только в IE - PullRequest
0 голосов
/ 14 марта 2011

У нас есть панель обновлений на нашем сайте, и на ней есть несколько кнопок ссылок.

Обратите внимание, что сайт работает нормально во всех браузерах без прокси

прокси-сервер изменяет URL-адрес снапример, www.mysite.net по адресу 0-www.mysite.net.edu.net, он также отлично работает во всех браузерах, но IE

проблема в том, что в прокси и в IE8 выдает ошибку при нажатииодна из кнопок ссылки, сообщение об ошибке:

"Сведения об ошибке веб-страницы

Агент пользователя: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET CLR2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Медиа-центр ПК 6.0; Планшетный ПК 2.0; InfoPath.1; .NET4.0C; .NET4.0E)

Отметка времени: Sun, 13 марта 2011 г. 20:38:58 UTC

Сообщение: Sys.WebForms.PageRequestManagerParserErrorException: Сообщение, полученное от сервера, не может быть проанализировано. Распространенными причинами этой ошибки являются изменения ответа вызовами Response..Write (), фильтры ответов, HttpModules, или трассировка сервера включена.

Подробности: синтаксический анализ ошибки рядом с '

Я понятия не имею, что здесь не так, кажется, что IE не может разобрать ответ?

Я открываю инструмент разработчика IE Developer, и он показывает, где происходит ошибка

Sys.Net.XMLHttpExecutor = function Sys$Net$XMLHttpExecutor() {
/// <summary locid="M:J#Sys.Net.XMLHttpExecutor.#ctor" />
if (arguments.length !== 0) throw Error.parameterCount();
Sys.Net.XMLHttpExecutor.initializeBase(this);
var _this = this;
this._xmlHttpRequest = null;
this._webRequest = null;
this._responseAvailable = false;
this._timedOut = false;
this._timer = null;
this._aborted = false;
this._started = false;
this._onReadyStateChange = (function () {

    if (_this._xmlHttpRequest.readyState === 4 ) {
        try {
            if (typeof(_this._xmlHttpRequest.status) === "undefined") {
                return;
            }
        }
        catch(ex) {
            return;
        }

        _this._clearTimer();
        _this._responseAvailable = true;
        try {
            _this._webRequest.completed(Sys.EventArgs.Empty);
        }
        finally {//<-----------------HERE IS WHERE THE ERROR OCCURS               
            if (_this._xmlHttpRequest != null) {
                _this._xmlHttpRequest.onreadystatechange = Function.emptyMethod;
                _this._xmlHttpRequest = null;
            }
        }
    }
});

ПОЖАЛУЙСТА, ПОМОГИТЕ!СПАСИБО МИЛЛИОН!

1 Ответ

0 голосов
/ 14 марта 2011

Это потому, что UpdatePanel ожидает, что его Ответ отформатирован определенным образом (с разделителем "|").Если что-либо нарушает формат передаваемых данных, он не может проанализировать ответ.

Sys.WebForms.PageRequestManagerParserErrorException - что это такое и как его избежать

Асинхронные постбэки проходят через те же события жизненных циклов, что и обычные страницы (это вопрос, который мне часто задают).Только на этапе рендеринга все становится иначе.Мы фиксируем рендеринг только тех UpdatePanels, которые нам нужны, и отправляем их клиенту в специальном формате.Кроме того, мы отправляем некоторые другие данные, такие как заголовок страницы, скрытые значения формы, URL-адрес действия формы и списки сценариев.

...