Проблема
Когда устанавливаешь в редирект URL, который содержит, например кирилические символы (напирмер в query string), то возникает следующая ошибка при открытии страницы:
НативныйВебСервер.os / Ошибка в строке: 65 / Внешнее исключение (System.InvalidOperationException): Invalid non-ASCII or control character in header: 0x0444}
Контекст.Ответ.Заголовки[Элемент.Ключ] = Элемент.Значение;
Причина: HTTP-заголовки поддерживают только ASCII-символы.
Решение
Необходимо кодировать значения заголовков, чтобы они содержали только допустимые ASCII-символы в классе:
|
Контекст.Ответ.Заголовки[Элемент.Ключ] = Элемент.Значение; |
Для Каждого Элемент Из Заголовки Цикл
Контекст.Ответ.Заголовки[Элемент.Ключ] = КодироватьСтроку(Элемент.Значение, СпособКодированияСтроки.URLВКодировкеURL);
КонецЦикла;
Но нужно проверить всегда ли ее нужно применять, т.к. значение могло быть закодировано ранее.
Upd:
Лучшим вариантом считаю в методе Перенаправить кодировать значение:
|
Заголовки["Location"] = НовыйАдрес; |
Процедура Перенаправить(НовыйАдрес) Экспорт
УстановитьСостояние(302);
Заголовки["Location"] = КодироватьСтроку(НовыйАдрес, СпособКодированияСтроки.URLВКодировкеURL);
КонецПроцедуры
Проблема
Когда устанавливаешь в редирект URL, который содержит, например кирилические символы (напирмер в query string), то возникает следующая ошибка при открытии страницы:
Причина: HTTP-заголовки поддерживают только ASCII-символы.
Решение
Необходимо кодировать значения заголовков, чтобы они содержали только допустимые ASCII-символы в классе:
winow/src/Классы/НативныйВебСервер.os
Line 65 in b42df26
Но нужно проверить всегда ли ее нужно применять, т.к. значение могло быть закодировано ранее.
Upd:
Лучшим вариантом считаю в методе
Перенаправитькодировать значение:winow/src/Классы/Ответ.os
Line 90 in b42df26