0

(Gemfile ) を使用したアプリ内:

gem "devise", ">= 2.1.2"
gem 'rails', '3.2.8' 
gem 'jquery_mobile_rails'

jquery-mobile を追加する前に、すべて正常に動作します。invalidad データを入力すると、エラー メッセージとログを含むページが表示されます。

Started POST "/users/sign_in" for 127.0.0.1 at 2012-11-28 12:01:13 -0500
Processing by Devise::SessionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"jLtHS2q0wO+tgswm9VM2/EiuTiq7J9Wwp8d65t/RSGE=", "user"=>{"email"=>"", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"}
Completed 401 Unauthorized in 0ms
Processing by Devise::SessionsController#new as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"jLtHS2q0wO+tgswm9VM2/EiuTiq7J9Wwp8d65t/RSGE=", "user"=>{"email"=>"", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"}
  Rendered devise/shared/_links.html.erb (0.8ms)
  Rendered devise/sessions/new.html.erb within layouts/application (3.2ms)
  Rendered layouts/_navigation.html.erb (0.5ms)
  Rendered layouts/_messages.html.erb (0.0ms)
Completed 200 OK in 29ms (Views: 28.9ms)

jquery-mobile を追加した後、正しいデータでログインすると正常に動作しますが、無効なデータでは 401 を取得し、noting をリダイレクトしません。http 応答 ( firebug で表示) では、「無効な電子メール」(html コードでも json でもない) などのエラーを含むメッセージのみが表示され、jquery-mobile では「ページの読み込みエラー」が表示されます。

Started POST "/users/sign_in" for 127.0.0.1 at 2012-11-27 21:32:45 -0500
Processing by Devise::SessionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"EYx56pui4v6trcuzmXQuhzY2BDHwqrADepKuySx9ub0=", "user"=>{"email"=>"test@test.net", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"}
Completed 401 Unauthorized in 0ms

デフォルトのデバイスコントローラーとデフォルトのビューが生成されています。

jquery mobile でデバイスのエラー メッセージを処理するにはどうすればよいですか?

4

2 に答える 2

1

jquery-mobileでajaxを使用せず、デフォルトで考案してください。

config/initializers/devise.rb

# If http headers should be returned for AJAX requests. True by default.
  config.http_authenticatable_on_xhr = false
于 2012-12-07T01:36:32.287 に答える
0

別の解決策は、追加することです

:html => {:data => {:ajax => 'false'}}

jQM がそれをハイジャックして ajax リクエストに変換しないようにします。

同じ質問に対する私の完全な回答をご覧ください https://stackoverflow.com/a/14595607/64669

于 2013-01-30T02:21:39.950 に答える