-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Description
Проблема
Когда устанавливаешь в редирект URL, который содержит, например кирилические символы (напирмер в query string), то возникает следующая ошибка при открытии страницы:
НативныйВебСервер.os / Ошибка в строке: 65 / Внешнее исключение (System.InvalidOperationException): Invalid non-ASCII or control character in header: 0x0444}
Контекст.Ответ.Заголовки[Элемент.Ключ] = Элемент.Значение;
Причина: HTTP-заголовки поддерживают только ASCII-символы.
Решение
Необходимо кодировать значения заголовков, чтобы они содержали только допустимые ASCII-символы в классе:
winow/src/Классы/НативныйВебСервер.os
Line 65 in b42df26
| Контекст.Ответ.Заголовки[Элемент.Ключ] = Элемент.Значение; |
Для Каждого Элемент Из Заголовки Цикл
Контекст.Ответ.Заголовки[Элемент.Ключ] = КодироватьСтроку(Элемент.Значение, СпособКодированияСтроки.URLВКодировкеURL);
КонецЦикла;Но нужно проверить всегда ли ее нужно применять, т.к. значение могло быть закодировано ранее.
Upd:
Лучшим вариантом считаю в методе Перенаправить кодировать значение:
Line 90 in b42df26
| Заголовки["Location"] = НовыйАдрес; |
Процедура Перенаправить(НовыйАдрес) Экспорт
УстановитьСостояние(302);
Заголовки["Location"] = КодироватьСтроку(НовыйАдрес, СпособКодированияСтроки.URLВКодировкеURL);
КонецПроцедурыReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels