2011-08-24 93 views
7

我使用Rails 3.1,Devise和Omniauth。Facebook omniauth回調和#_

問題是,當我的應用程序的Facebook回調 url結尾#_。然後當在回調動作 我重定向到某些東西 - 例如/after_signin 重定向結果/after_signin#_

任何想法如何從URL中刪除此錨?

編輯: 無論我把什麼放在回調函數。 即使簡單的重定向:

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

這將導致即使在正常的控制器將/after_callback#_

如果你去/#_和你有一些重定向療法 它會被重定向到指定的路徑與#_附加最後。

EDIT2: 我剛發現瀏覽器故障來保留錨點。所以必須在前端處理 。

+0

請顯示您的回調函數的代碼。 –

+0

@本·李:這裏你去 –

+0

這只是奇怪。爲什麼散列值會通過?也許嘗試'redirect_to「/ after_callback」,:anchor =>'''? –

回答

2

如果您確信它是一個瀏覽器問題,那麼您可以使用JavaScript來更新window的對象的hash部分。也許像這樣:

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