2011-08-24 10 views
7

Uso Rails 3.1, Devise e Omniauth.Chiamata omniauth di Facebook e #

Il problema è che quando facebook richiami alla mia app l'URL termina con #_. Quindi, quando nell'azione di richiamata reindirizzo a qualcosa - ad esempio /after_signin i risultati di reindirizzamento in /after_signin#_.

Qualche idea su come rimuovere questo ancoraggio dall'URL?

MODIFICA: Non importa ciò che ho inserito nella funzione di callback. Anche semplice redirect:

class Users::OmniauthCallbacksController < ApplicationController 
    def facebook 
    redirect_to "/after_callback" 
    end 
end 

sarebbe risultato in andando a /after_callback#_

Anche controller normale se si va a /#_ e si dispone di una certa reindirizzare ther sarebbe reindirizzati il ​​percorso specificato con #_ allegato alla fine.

EDIT2: Ho appena scoperto che è l'errore del browser conservare l'ancora. Quindi deve essere gestito nel frontend.

+0

Si prega di mostrare il codice della funzione di richiamata. –

+0

@ Ben Lee: qui vai –

+0

che è solo bizzarro. perché dovrebbe portare il valore hash? magari prova 'redirect_to"/after_callback ",: anchor => '''? –

risposta

2

Se sei sicuro che si tratti di un problema del browser, puoi semplicemente utilizzare JavaScript per aggiornare la porzione hash dell'oggetto locationwindow. Forse qualcosa di simile:

if (window.location.hash.search('#_') >= 0) { 
    window.location.hash = ''; 
} 
Problemi correlati