В моем экспресс-приложении есть следующий маршрут:
app.get('/api/:URI', (req, res) => {
doStuff();
}
Переданный параметр URI - это URI, кодированный на стороне клиента с помощью encodeURIComponent()
. Он работает нормально, кроме случаев, когдаURI содержит хеш.
Пример: http://foo.bar/foobar/bla#blabla-313fe4ce-4f8d-48b7-b0f3-a59844402ee8
В этом случае маршрут игнорируется.
На стороне браузера я получаю код 301, затем результат следующего действительного маршрута.
Если я удаляю хеш или, что более странно, если я отключаю кэш на стороне браузера, он работает отлично.
Есть ли способ, которым Express может игнорировать хеш?
Редактировать: Это абсолютно не Могу ли я использовать символ (@) внутри URL-адресов? дубликат, вопрос скорее в экспресс-маршрутизации и / или в проблемах кэширования в браузерах, чем в разрешенных символах в URL.