2011-08-16 19 views
1

認証をチェックするコントローラへのajaxコールがあります。認証が存在しない場合は、それがxhrリクエストかどうかを確認するサインインコントローラにコールを送信します。そうであれば、page.redirect_toを含むrjsをsigninパスにレンダリングし、メインウィンドウはsigninページにリダイレクトされます。これは完璧にGoogle Chromeで動作しますが、Firefoxでは失敗します。メインウィンドウをajaxコールからリダイレクト

RJSファイル内の唯一のコードは次のとおりです。

page.redirect_to("http://localhost:3000/signin") 

私が言ったように、それはクロムで完璧に動作しますが、Firefoxの(V3.6)は、メインウィンドウをリダイレクトすることを拒否します。誰も私はこれもFirefoxで動作するように得ることができるどのようなアイデアを持っていますか?

+0

[jQuery/JavaScriptでリダイレクトページを作成するにはどうすればいいですか?](http://stackoverflow.com/questions/503093/how-can-i-make-a-redirect-page-in-jquery -javascript) – fotanus

答えて

1

コンソールにエラーが表示されていませんか?

ないと、「JS」に対応し、のようなものでjsのテンプレートをレンダリングしやすいだろう:絶対に:あなたは本当にリダイレクトする必要があり、接線のビットに

window.location = "http://localhost:3000/signin" 

「3000 localhost」をしますとにかく?たぶん、別の解決策がありますか?

+0

私はこのURLを開発中のプレースホルダーとしてのみ使用していますが、page.redirect_toはwindow.location.hrefを生成しているので、このアプローチを使用すると多くの違いが生じるとは思われません。 – nenne

+0

コンソールで何かエラーが見つかったようですが、私は恐れています。 – nenne

1

はおそらくJavaScriptでAJAX要求からの応答を処理し、リダイレクトする必要があります。

window.location = urlToDirectTo; 

は、私はほとんどのブラウザは、AJAX要求自体ではなく、Ajaxの要求が行われたページをリダイレクトすると思います。 Here's an answerに解決策を詳述する同様の質問があります。

+0

page.redirect_toはjavascriptのgode window.location.hrefを生成するので、違いはほとんどありません。奇妙なことに私は警告(「こんにちは」)を得ることもできませんでした。表示する。私はFirefoxがメインウィンドウに達するようにjavascriptを送っているとは思わない。 – nenne

+0

あなたはリダイレクトコードを返していますか?または200? – Spycho

+0

私は空の応答を示す304を受け取ったようですか?それは奇妙に思える。しかし、たぶんそれは単にajaxフレームをリダイレクトし、メインウィンドウに何も返さないでしょうか? – nenne