Не могу найти причину этой ошибки в моей ASP CMS - PullRequest
4 голосов
/ 17 сентября 2009

Я только что нашел решение одной из самых странных ошибок, которые я когда-либо видел, и я все еще пытаюсь найти причину ...

Я получил старую CMS в Classic ASP. На странице редактора есть JavaScript, изменяющий свойство изображения:

function removeimg(objimg){
    objimg.onclick = "";
    objimg.src = "/Logiciel/_Altitude_image/interface/Gestion_acces/spacer.gif";
    objimg.width = 16;
    objimg.style.cursor = "arrow";
}

Одна из моих клиентов, использующих IE6, сказала мне, что когда она сохраняла свой контент на английском, он переписывал ее на французском, но язык сохранялся в сеансе Classic ASP, поэтому я начал исследовать ошибку (ни один из моих другие клиенты сталкивались с такой проблемой) поэтому после многократного тестирования, вставляя response.end в код и response.write моего сеанса, чтобы выяснить, где он меняется, я обнаружил, что это было в самом javascript

Эту часть я не могу объяснить ... Мне пришлось поставить objimg.style.cursor = "arrow"; сначала в комментарии, чтобы понять, что как только эта строка вышла, больше не было проблем с моим сеансом ASP.

Затем после нескольких тестов я изменил objimg.style.cursor = "arrow"; на objimg.style.cursor = "pointer";, и все заработало просто отлично. Мне было интересно, сталкивался ли кто-нибудь с такой проблемой раньше, и мог ли кто-нибудь объяснить мне, как изменение курсора может повлиять на мой классический ASP-сеанс на стороне сервера

Спасибо.

1 Ответ

6 голосов
/ 17 сентября 2009

Это ошибка в IE: когда находит, что получает недопустимое значение, такое как arrow, для свойства cursor скриптом (хотя и не в CSS), оно неправильно обрабатывает его как если он был url(arrow) и пытается получить файл изображения с именем «стрелка», который, по его мнению, должен отображаться. Этот дополнительный HTTP-запрос отправляет любые файлы cookie, связанные со страницей, с которой он был создан. Файлы cookie будут включать файл cookie идентификатора сеанса ASP, и, вероятно, этот неожиданный и нестандартный запрос каким-то образом влиял на код, связанный с сеансом.

(Кстати, если предполагается, что курсор является обычным курсором со стрелкой, правильное значение равно default; pointer - курсор, связанный с наведением на ссылку. Но, возможно, это то, что нужно в первой место.)

...