Вопрос или проблема
(Неплохой заголовок – именно эта ошибка возникает, и, вероятно, именно это будет искать любой будущий человек, который столкнется с этой проблемой)
Используемый браузер: Firefox 90.0.2 (Ubuntu x86_64)
После нажатия кнопки Submit
на LeetCode для решения появилась следующая ошибка в красном цвете в правом нижнем углу:
“Произошла неизвестная ошибка. Пожалуйста, попробуйте позже или свяжитесь с нами, если проблема сохраняется.”
Что может быть причиной этой ошибки? Я пытался включить все cookies, но это ничего не меняет. (Ответ сам на себя ниже.)
Краткое решение:
Установите network.http.sendRefererHeader
на 2.
Объяснение, почему это решение является правильным:
Основная проблема здесь – заголовок Referer
, который отправляется с каждым запросом. Можно отправлять заголовок Referer
только когда основное доменное имя совпадает (допустимо отправлять referer с a.example.com на b.example.com, но не на b.otherwebsite.com).
Однако в Firefox (начиная с 90.0.4 Linux x64) есть настройка network.http.sendRefererHeader
, которая у меня была установлена на 1
(по умолчанию это 2), которая ограничивает отправку заголовков Referer
только при клике на ссылки, кнопки и т.д., независимо от политики происхождения, которую вы установили.
LeetCode требует отправки заголовка Referer
со всеми запросами к их поддоменам, независимо от того, касается ли это изображения, пользовательского интерфейсного компонента или XHR-запроса, это не имеет значения. Таким образом, при нажатии на кнопку Submit
, так как это пользовательский UI-компонент (не HTML-кнопка), браузер не распознает её как форму-кнопку и не отправляет с ней заголовок Referer
. Серверы LeetCode считают, что это запрос от бота или кто-то пытается получить компонент напрямую без нахождения на предыдущей странице, и затем отклоняют его. Поэтому установите эту конфигурацию на 2
.
.
Ответ или решение
Ошибка LeetCode: An unknown error occurred
Введение
Вы столкнулись с ошибкой при попытке отправить решение на платформе LeetCode. Сообщение об ошибке выглядит следующим образом: "An unknown error occurred. Please try again later, or contact us if this problem persists." В этом разборе мы рассмотрим причины возникновения данной проблемы и предложим решения.
Анализ Проблемы
Изначально была использована версия браузера Firefox 90.0.2 на ОС Ubuntu x86_64. При нажатии кнопки "Submit" возникала ошибка, связанная с заголовком Referer
. Мы выявили, что настройка network.http.sendRefererHeader
в браузере была изменена с автоматического значения 2
на 1
, что ограничивает передачу заголовка Referer
только для ссылок, кнопок и подобных элементов.
Причина Ошибки
LeetCode требует, чтобы заголовок Referer
отправлялся со всеми запросами к их поддоменам. Это включает не только ссылки и кнопки, но и другие элементы интерфейса. Когда заголовок не отправляется, серверы LeetCode интерпретируют это как запрос от бота или некорректный запрос, что и приводит к ошибке.
Решение Проблемы (Forest)
-
Fascinate: Изменение одной настройки в вашем браузере может полностью устранить неполадки с сервисом LeetCode.
-
Educate: Чтобы исправить эту проблему, необходимо вернуть параметр
network.http.sendRefererHeader
в состояние2
. Это разрешит передачу заголовкаReferer
при всех типах запросов, что соответствует требованиям LeetCode. -
Stir: Настройка браузера — это ключ к стабильной работе с платформой. Настоятельно рекомендую всегда проверять конфигурации при возникновении подобных ошибок.
-
Transition: Для внесения изменения, следуйте инструкции:
- Откройте Firefox и в адресной строке введите
about:config
. - Подтвердите желание продолжить, если получите предупреждение.
- В поле поиска введите
network.http.sendRefererHeader
. - Установите значение параметра на
2
.
- Откройте Firefox и в адресной строке введите
Заключение
Внесение этого небольшого изменения в настройки браузера устранит проблему отправки решения на платформе LeetCode. Надеемся, это руководство поможет вам избежать подобных ошибок в будущем и обеспечит бесперебойную работу на сайте. В случае повторения ошибки, настоятельно рекомендуем связаться с поддержкой LeetCode для более детального анализа проблемы.