복붙노트

[RUBY-ON-RAILS] 레일 서버에 POST의 JSON

RUBY-ON-RAILS

레일 서버에 POST의 JSON

def create
  req = ActiveSupport::JSON.decode(request.body)
  if user = User.authenticate(req["email"], req["password"])
    session[:user_id] = user.id
    render :json => "{\"r\": \"t\"}" + req
  else
    render :json => "{\"r\": \"f\"}"
  end
end

'만들기'방법은 내가 올바른 콘텐츠 형식을 설정하고 내 컬 클라이언트에서 헤더를 수용하고, 컨트롤러에 있고 "/ 로그인"에 매핑. 나는 모든 시간을 422 HTTP 상태 반응을 얻고있다.

어떤 제안?

해결법

  1. ==============================

    1.레일 당신을 위해 그렇게 할 것입니다 - 당신이 바로 헤더에 보내는 경우에, 당신은 "ActiveSupport :: JSON.decode"를 할 필요가 없습니다.

    레일 당신을 위해 그렇게 할 것입니다 - 당신이 바로 헤더에 보내는 경우에, 당신은 "ActiveSupport :: JSON.decode"를 할 필요가 없습니다.

    당신은 당신의 게시물에 다음과 같은 헤더를 설정해야합니다.

    Content-Type: application/json
    Accept: application/json
    

    (422 개) 수단 처리 할 수 ​​없음 법인 --- 일반적으로 유효성 검사 오류가 있다는 것을.

    당신은 할 수 있어야합니다. 당신이, 당신의 헤더가 올바르게 설정되지 할 수 없습니다.

    def create
      if user = User.authenticate(params["email"], params["password"])
        session[:user_id] = user.id
        render :json => "{\"r\": \"t\"}" + req
      else
        render :json => "{\"r\": \"f\"}"
      end
    end
    
  2. from https://stackoverflow.com/questions/4914745/post-json-to-rails-server by cc-by-sa and MIT license