2017-10-14 7 views
0

私はこのチュートリアルに従いました:https://blog.andrewray.me/how-to-set-up-devise-ajax-authentication-with-rails-4-0/そして、レールを使用しています。5.1Ruby DeviseがAJAXにサインアップしてjsonレスポンスを得られませんか?

class RegistrationsController < Devise::RegistrationsController 

    respond_to :json 
end 

そして、私はAJAXを呼び出すとき、私は唯一のHtml/Text応答を取得:

function createUser(callback) { 
    $.ajax({ 
     type: "POST", 
     url: window.urls.createUser, 
     data: { 
      authenticity_token: $("meta[name=csrf-token]").attr("content"), 
      user: grabOrderFormUserData() 
     }, 
     success: function(data) { 
      console.log("Data: " + data); 
     }, 
     error: function (data) { 
      //console.log("error"); 
     } 
    }) 
} 

その呼び出しが正常に動作しますが、返すHTMLを

私は、コントローラでJSONレスポンスを実現していますサインアップのページ。 私が使用しているURLはcreateUser: hostUrl + '/users/'

私は何を欠席しましたか?

URLに.jsonを追加すると、500エラーコードで応答します。

+0

この記事のトラブルシューティングの部分(レーキルートについて)を読んでいますか? – kolas

+0

@kolas Rakeルート? – Jony

+0

devise_forの追加について:users、:controllers => {セッション: 'セッション'、登録: '登録'} route.rb – kolas

答えて

0

は、私はあなたが、この

function createUser(callback) { 
    $.ajax({ 
     url: window.urls.createUser, 
     type: "POST", 
     data: {`enter code here` 
      authenticity_token: $("meta[name=csrf-token]").attr("content"), 
      user: grabOrderFormUserData() 
     }, 
     dataType: "json", 
     success: function(data) { 
      console.log("Data: " + data); 
     }, 
     error: function (data) { 
      //console.log("error"); 
     } 
    }) 
} 

を試してみても、あなたのコントローラにあなたはJSONレスポンスを取得していない場合場合には、このブロックを呼び出すようにしてみてください、あなたのAJAX呼び出しをdataType: "json"を言及する逃したと思います

respond_to do |format| 
    format.json { 
     render json: {.....} 
    } 
end 

ありがとうございます。

関連する問題