Запретить кодировку URL, которая удаляет знаки равенства из URL - PullRequest
0 голосов
/ 02 июля 2018

Работа над приложением Django / React. У меня есть ссылки для подтверждения по электронной почте, которые выглядят следующим образом:

https://test.example.com/auth/security_questions/f=ru&i=101083&k=7014c315f3056243534741610545c8067d64d747a981de22fe75b78a03d16c92

В dev env это работает нормально, но теперь, когда я готовлю его к производству, оно не работает. Когда я нажимаю на нее, она преобразуется в:

https://test.example.com/auth/security_questions/f%3Dru&i%3D101083&k%3D7014c315f3056243534741610545c8067d64d747a981de22fe75b78a03d16c92/

Это запрещает react-router-dom сопоставлять правильный URL-адрес, поэтому часть веб-приложения загружается неправильно.

Ссылка построена с использованием следующего.

link = '%s/auth/security_questions/f=%s&i=%s&k=%s' % \
('https://test.example.com', 'ru', user.id, user.key)

Кроме того, вот url(), который ловит маршрут:

url(r'^(?:.*)/$', TemplateView.as_view(template_name='index.html')),

1 Ответ

0 голосов
/ 02 июля 2018

Эти переменные должны быть параметрами запроса в запросе GET. Когда вы создаете ссылку, вам нужно где-то поставить вопросительный знак, отделяющий URL-адрес от строки запроса:

https://test.example.com/auth/security_questions/?f=ru&i=101083&k=7014c315...
                                                 ^
                                                 |___ here

Преобразование = в кодировку URL %3D и т. Д. Является правильным и эквивалентным. Иногда переменные являются частью URL-адреса напрямую, но веб-приложения в этом случае не используют & -separated пары ключ / значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...