2016-06-17 10 views
0

私はjsonをajaxリクエストに戻すためにdeviseを取得しようとしていますが、代わりにhtmlを送信し続けます。私はthisに続きました(そして、私は文字通り、2つのGoogle検索ページのすべてのリンクを調べました)チュートリアルですが、まだHTMLを送信しています。rails - deviseはajaxリクエストへのhtml応答を返し続けます

設定/初期化子/ devise.rb:

が追加さ:config.http_authenticatable_on_xhr = false

作成アプリ/コントローラ/ sessions_controller:

class SessionsController < Devise::SessionsController 
    respond_to :json 
end 
ここで私が変更とどこ何

はapp.controllers/registrations_controller作成します。config/routes.rbを

devise_for :users, :controllers => { 
    sessions: 'sessions', 
    registrations: 'registrations' 
} 

の下に追加

class RegistrationsController < Devise::RegistrationsController 
    respond_to :json 
end 

を、私はそれはそれだと思います。しかし、私はHTMLを取り戻し続けています。私はdeviseに関連する部分的なビューを削除すべきですか?

として作成SessionsController番号によって2016年6月17日9時01分19秒-0400 処理で:: 1は、 "/ユーザ/ sign_inの" POSTを開始:ここで

は、要求は次のようになります。/ パラメータ:{ "ユーザー" => { "電子メール" => ""、 "パスワード" => "[FILTERED]"} "authenticity_token" => "HDlnoiGZXXoarFjdlfxZL6AF0EY8Xf1K5mRwceVmVw647lG + NPJxDYstXLhiH4BGGwmNrrX8U5gZD8B3IfhS +" == W}

+0

リクエストのサーバーログを送信できますか? – Ruslan

+0

@Ruslanリクエストの例を追加しました –

+1

POSTリクエストをするときに 'format::json'を見逃しませんか? – Bob

答えて

0

ajaxリクエストでdataTypeプロパティが不足していましたが、それを `application/json 'に設定した後で動作しました。

$.ajax({ 
    method: "POST", 
    url: "https://stackoverflow.com/users/sign_in", 
    dataType: 'application/json', <--- here 
    headers: { 
     'X-CSRF-Token': csrfTokenContent 
    }, 
    data: { 
     user: { 
     email: email, 
     password: password, 
     }, 
     authenticity_token: csrfTokenContent 
    } 
    }) 
関連する問題