Путь маршрута ExpressJS с акцентированным символом [дубликат]

Также, если вы используете сторонние библиотеки, убедитесь, что у вас есть правильные 32/64 битные файлы

4
задан Will 9 September 2013 в 18:55
поделиться

2 ответа

Я думаю, вам нужно будет обрабатывать как кодированный URL, так и, возможно, вариант UTF-8 (и, возможно, Latin-1). Проверьте следующее:

  1. Как ваши клиенты (браузеры) отправляют URL-адрес? URL-адрес как %C3%B1? хром и firefox отправляют кодировку %C3%B1, я предполагаю, что это доминирующее и совместимое поведение Unicode? Я протестировал с помощью curl и, похоже, отправил один символ, который, как я полагаю, является любой кодировкой, полученной от моего терминала, что, вероятно, является UTF-8.
  2. Исходя из этого, попробуйте настроить маршрут. Вы можете использовать регулярное выражение или явный список

.

app.get('/campaña/nueva', sms.nueva)
app.get('/campa%c3%b1a/nueva', sms.nueva)
//Or for convenience if you like
app.get('/' + encodeURIComponent('campaña') + '/nueva', sms.nueva) 

Мое предположение, в конечном счете, большинство браузеров собираются отправить версии с кодировкой URL, так что вы можете вероятно, с этой последней версией.

9
ответ дан Peter Lyons 26 August 2018 в 09:32
поделиться

Я столкнулся с той же проблемой с $ в моем маршруте. URL-кодированный символ не работает в моем случае, но сбежал один из них.

Итак, я закончил с

app.get('/\\$myRoute', function (req, res) {

}
2
ответ дан Blackus 26 August 2018 в 09:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: