2015-12-29 1 views
0

У меня есть GET REST конечной точки:Экспресс Node.js получить originalurl со специальными символами "#"

router.get('/test/*', function(req, res) { 
    var test = req.originalUrl; 
} 

он не возвращает полный URL, когда у меня есть знак "#" в них:

т.е.

/тест/АФС # 23

Я хочу "АФС # 23", но приведенный выше код дает мне только "АФС". Мысли?

Редактировать: req.originalUrl, req.path, req.baseUrl, req.url все возвращают то же самое. Любые другие идеи?

Редактировать 2: У меня нет абсолютно никакого контроля над клиентом, мне просто нужно распечатать URL, к которому клиент пытался получить доступ. Есть ли способ разобрать его?

+0

Вы пытаетесь использовать 'req.path' или' req.baseUrl'? – BlackMamba

+0

Не работает .... –

ответ

-1

# небезопасно использовать в URL, думаю, что это причина, она не разбирается

+0

спасибо за совместное использование, но я не могу изменить шаблон uri клиента, мне просто нужно разобрать то, что они пытаются получить, есть ли способ? Я уверен, что «#» не слишком редко встречается в URL-адресах, экспресс просто не поддерживает его? –

+0

пункт отметил, убедитесь, что в следующий раз – SKY

+0

@ user3586553, чтобы ответить на ваш вопрос, я не думаю, что экспресс позволяет отправлять якорные или якорные ссылки или URL-адреса на сервер от клиента. См. Здесь http://stackoverflow.com/questions/14885023/how-to-identify-an-anchor-in-a-url-in-django – SKY

1

Это потому, что хэш часть не рассматривается как часть URI и поэтому он не передается на сервер в все. Вы можете сделать его частью URI, запросив, например, /test/asf?id=23. В этом случае вы сможете получить это id, обратившись к req.query.id.

+0

спасибо за обмен, но я не могу изменить шаблон uri клиента, мне просто нужно для анализа того, что они пытаются получить, есть ли способ? –

+1

Нет, боюсь, что нет. И опять же, это не Экспресс, который его не поддерживает, а браузер, который его не передает. –

Смежные вопросы