2013-04-12 1 views
0

В настоящее время я реализую логин facebook в своем приложении после того, как пользователь успешно разрешил свою учетную запись, он вернется к классу действий на моем веб-сервере и на этом.Struts2 перенаправление URL-адресов с hash

Вот пример

щелчки 1) пользователя войти в систему с Facebook 2) Он или она будет перенаправлен на эту страницу авторизации facebook 2) После того, как он или она была authorized.the страница затем будет перенаправлен to struts2 класс действия. поэтому URL будет рассматриваться как этот

http://127.0.0.1:8080/MyApp-Facebook/oAuthExchange?code=SomeLongFacebookCodHere#_=_ 

если вы увидите окончание URL из oAuthExchange имеет #_=_. , а затем он будет перенаправлен на страницу приборной панели моего приложения адрес страницы будет выглядел как этот

http://127.0.0.1:8080/Struts2-Facebook/dashboard#_=_ 

, если вы заметите, что есть в моем URL "#_=_". есть ли в любом случае я могу удалить "#_=_", когда я делаю перенаправление?

Я также использую Facebook4j для facebook графа API

ответ

2

Вы можете удалить его непосредственно на странице результатов в совместимых браузеров HTML5 с history.pushState().

Предполагая #_=_ фиксирована (в противном случае вам необходимо выполнить динамическую substring с indexOf ищет #), поставить это на вашей странице:

<script> 
    //4 is the lenght of #_=_ 
    var cleanLocation = location.href.substring(0, location.href - 4); 
    history.pushState("","", cleanLocation); 
</script> 
+0

что, если Javascript отключен? – user962206

+2

То же самое со старым браузером: URL-адрес остается «грязным». Не большая проблема btw (если она работает одинаково, и все дело в глазной конфете) ... параноиды, занимающиеся серфингом с отключенным javascript, используются для худших вещей, чем URL-адрес не совсем красиво;) –

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