2017-10-14 61 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 

谢谢。