Я программист проекта MVC / ajax, который получает значительный трафик от своих клиентов.Мы видели один или два изолированных экземпляра (в день) действия контроллера, не получающего параметры от клиента.
Короче говоря: действия вызываются через jQuery ajax, а параметры действия - толькоnull, если выполняется вызов ajax, когда браузер переходит на другую страницу.IE щелкает ссылку и затем запускает вызов ajax.
Я добавил некоторую грубую проверку этих вызовов, чтобы убедиться, что мы фактически не пропускаем нули в данных ajax, и это не уменьшило проблему.Ниже приведен пример одного из вызовов.
var searchValue = _txtSearch.val().trim();
if (searchValue === null
|| searchValue === undefined
|| searchValue.length < _minimumLengthForSearch) {
_txtSearch.focus();
return;
}
// clear out the value when launching
_txtSearch.val('');
$.post(_quickSearchUrl,
{ searchString: searchValue },
function (data) {...},
"json");
Я нашел старый пост IEBlog , в котором говорится, что IE может справиться с этой ситуацией иначе, чем в других браузерах.Мне было любопытно, сталкивался ли кто-либо еще с этим явлением прежде.Опять же, я могу воспроизвести эту проблему только в IE и только во время навигации по страницам.
Редактировать: Трудно воспроизвести это исключение с активным Fiddler по какой-то причине, но когда мне удается в Fiddler, отображается следующее сообщение об ошибке:
Fiddler обнаружил нарушение протокола в сеансе # 4.Несоответствие длины содержимого: заголовок запроса указал 24 байта, но клиент отправил 0 байтов.