2013-03-28 60 views
0

所以我试图做这个与jquery(咖啡标记)的ajax请求,但我有回调函数的问题,它告诉我,“数据”是未定义的,但有时,当我重新编写代码时,它不会给我一个控制台错误,而是什么也不做。我知道请求会通过,因为rails会处理请求,但是可能会有问题发回信息,所以我也会包含我的控制器代码。谢谢你的帮忙。JQuery的Ajax调用 - 回调函数的错误

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. 添加以.json于你请求
  3. 网址的结尾
  4. 将format.json更改为format.js
+0

原来是缩进问题,但这些也使代码更加健壮。 –