|
|
|
Spring MVC: удаление якоря в URL'е RedirectView
|
|||
|---|---|---|---|
|
#18+
В принципе, ситуация возникла при регистрации/логине клиента на Фейсбуке через OAuth2/server-side. Углубляться не буду, вопрос в том, что когда авторизация пройдена, FB по указанной мною ссылке возвращает параметры, после сравнения которых я переадресую клиента на другую страницу/адрес: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. И что бы я не делал, при переходе на страницу в адресной строке присутствует якорь "#_=_". Анализ реквестов, представления, модели ничего не дали. Прямо шаманство какое-то ... Откуда он берется и как я могу от него избавиться? - Сервер сам определяет куда перенаправить и что показать клиенту, а тут получается, что мне навязывают того, чего я не хочу и я не могу от этого избавиться. Более того, совершенно нестрашная и безвредная, визуально решается скриптом на клиентской стороне, но сам факт меня заинтересовал и я зацепился за этот "нюанс", а решить не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2012, 19:14:17 |
|
||
|
Spring MVC: удаление якоря в URL'е RedirectView
|
|||
|---|---|---|---|
|
#18+
http://some_address#_=_ ? some_address это твой сервер или сторонний ресурс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2012, 19:20:12 |
|
||
|
Spring MVC: удаление якоря в URL'е RedirectView
|
|||
|---|---|---|---|
|
#18+
Мой. На момент тестирования http://localhost:8080/myproject/registration_page ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2012, 19:59:55 |
|
||
|
Spring MVC: удаление якоря в URL'е RedirectView
|
|||
|---|---|---|---|
|
#18+
Не сталкивались или не знаете? - Думал, ничего сложного, где-то чего-то подправить и все ... (( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2012, 11:41:06 |
|
||
|
Spring MVC: удаление якоря в URL'е RedirectView
|
|||
|---|---|---|---|
|
#18+
Лазил по исходникам и случайно "зацепил" решение. IMHO, это в некотором роде баг Spring MVC, в частности, класса RedirectView. При редиректе для View мы можем указывать 4 флага: contextRelative, http10Compatible, exposeModelAttributes, exposePathVariables. По теме интересен один - exposeModelAttributes. Если он установлен, то при редиректе к запросу цепляются входящие в контроллер параметры, причем, сначала записывается якорь, если он есть, удаляется из строки, добавляются параметры, и в конце при наличии этого якоря он добавляется. Если флаг exposeModelAttributes равен false, то как бы подразумевается, что запрос должен идти "чистый" - такой, каким мы его задаем параметром url. Не знаю, как к такому утверждению относятся разрабы со спринга, но явно считают якорь неотъемлемой частью запроса и проносят его через все редиректы и форварды. Как по мне, неправильно это - если указываем, что "не нужны мне параметры в строке", то очищать надо вместе с якорем ... Класс RedirectView как бы является самодостаточным - инициализируется, составляет запрос и сам делает редирект средствами сервлета, поэтому нигде больше эта проблема не находит отображения. Поэтому решение вижу либо создавать фильтр, который будет "чистить" строку, либо сделать свой дубликат RedirectView, где обрабатываю не только if (this.exposeModelAttributes), но и else ... Не очень кошерно, конечно, но это вроде самое простое решение. Похоже, надо на JIRA написать, не встречал решения. P.S. Можно решать проблему, указывая на клиенте Код: javascript 1. но от таких решений мутит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2012, 17:19:20 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37811213&tid=2131659]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 320ms |
| total: | 467ms |

| 0 / 0 |
