2017-10-14 58 views
0

我按照這個教程:https://blog.andrewray.me/how-to-set-up-devise-ajax-authentication-with-rails-4-0/而我正在使用rails 5.1Ruby設計註冊AJAX沒有得到JSON響應?

我已經實現在控制器中的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註冊頁面。 我使用的網址是createUser: hostUrl + '/users/'

我錯過了什麼?

不,如果我將.json添加到我的網址,它會迴應500錯誤代碼。

+0

您有閱讀這篇文章的疑難解答部分內容(關於耙路線)? – kolas

+0

@kolas耙路線? – Jony

+0

關於添加devise_for:users,:controllers => {sessions:'sessions',registrations:'registrations'} to route.rb – kolas

回答

0

我想你錯過提dataType: "json"與AJAX調用,試試這個

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響應調用此模塊的情況下,

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

謝謝。