2013-03-28 3 views
0

jquery (coffeescript)를 사용하여이 아약스 요청을 수행하려고하지만 콜백 함수에 문제가있어 "데이터"가 정의되지 않았지만 가끔씩, 코드를 다시 작성하면 콘솔 오류가 발생하지 않고 대신 아무것도 수행하지 않습니다. 레일즈가 요청을 잘 처리하기 때문에 요청이 끝났음을 알았지 만 정보를 다시 보내는 데 문제가있을 수 있으므로 컨트롤러 코드도 포함합니다. 도와 줘서 고마워.Jquery Ajax Call - 콜백 함수의 오류

submit_yes = -> 
par = $(this).parent().parent() 
event_id = par.find('#event_id').val() 
time_module_id = par.find('#time_module_id').val() 
$.ajax 
    type: "PUT", 
    url: '/events/'+event_id+'/add_yes_rsvp?' + par.find('#time_module_id').serialize(), 
    data: JSON.stringify({ _method:'put' }) 
    success: (data) -> 
    alert data 
    update_score(par.parent()) 
return true 

def add_yes_rsvp 
    @event = Event.find(params[:id]) 
    TimeModule.find(params[:time_module_id]).add_yes_rsvp(current_user) 
    respond_to do |format| 
    format.json {render json: { error: false }} 
    end 
end 

답변

1

요청한 사용 가능한 형식과 콘텐츠 형식이 일치하지 않습니다. 당신은 기본적으로 세 가지 옵션이

  1. "JSON"
  2. 을 요청하는 URL의 끝에 .json 추가 할 수있는 $ 아약스 설정을 "받아 들인다"를 사용하여 요청 헤더 콘텐츠 유형을 설정
  3. format.json을 format.js로 변경하십시오.
+0

들여 쓰기 문제가되었지만 코드가 더욱 강력 해졌습니다. –