2011-08-24 19 views
7

私はRails 3.1、DeviseとOmniauthを使用します。Facebook omniauthコールバックと#_

問題は、Facebookのコールバックが の場合、URLが#_で終わることです。コールバックアクションで にリダイレクトすると、/after_signin のようになり、リダイレクトの結果は/after_signin#_になります。

このアンカーをURLから削除するにはどうすればよいですか?

編集: コールバック関数に何を入れるかは関係ありません。 であっても、単純なリダイレクト:あなたは/#_に行き、あなたには、いくつかはそれが#_が追加で指定されたパスにリダイレクトさになるだろうTHER リダイレクトしている場合

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

はそれも通常のコントローラで/after_callback#_

に行くことになります最後に。

EDIT2: アンカーを保存するのがブラウザの不具合であることがわかりました。したがって、フロントエンド側では を処理する必要があります。

+0

は、コールバック関数のコードを表示してください。 –

+0

@Ben Lee:ここには –

+0

がありますが、これはちょっと奇妙です。なぜ、ハッシュ値が引き継ぐのでしょうか? redirect_to/after_callback "、:anchor => '''を試してみてください。 –

答えて

2

ブラウザの問題があると確信している場合は、windowlocationオブジェクトのhash部分を更新するだけでJavaScriptを使用できます。たぶん、このような何か:

if (window.location.hash.search('#_') >= 0) { 
    window.location.hash = ''; 
} 
関連する問題