2017-10-14 4 views
0

나는이 자습서를 따라 갔다 : https://blog.andrewray.me/how-to-set-up-devise-ajax-authentication-with-rails-4-0/그리고 레일을 사용하여 5.1.Ruby Devise가 AJAX에 가입하여 json 응답을받지 못합니까?

class RegistrationsController < Devise::RegistrationsController 

    respond_to :json 
end 

내가 아약스를 호출 할 때 나는 단지 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 레이크 루트? – Jony

+0

devise_for를 추가하는 방법 : 사용자, : 컨트롤러 => {세션 : '세션', 등록 : '등록'} 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 응답을 받고 있지 않은 경우 경우이 블록을 호출하려고 아약스 호출 dataType: "json"을 언급 놓친 생각

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

감사합니다.