2011-09-07 60 views
3

我有一个rails 3远程表单标记,我试图通过ajax提交,从我可以看到的东西似乎工作正常,但由于某种原因ajax:success事件永远不会被解雇,但ajax:error永远是。当我打开Firebug时,我可以看到请求以200状态返回......我以为200状态会触发ajax:success我错过了什么?这是我的javascript:rails:远程ajax总是触发失败

$('#institution-select-form') 
.bind("ajax:complete", function() { 
    alert('complete!'); 
}) 
.bind("ajax:beforeSend", function() { 
    alert('loading!'); 
}) 
.bind("ajax:error", function (xhr, status, error) { 
    alert('failure!'); 
}) 
.bind('ajax:success', function(event, data, status, xhr) { 
    alert('success!'); 
}); 

回答

4

错误事件可以触发其他问题,而不仅仅是一个非200状态。例如,如果您要返回JSON或XML,并且返回的数据无效且无法分析,则会导致错误事件。

诊断它,添加到你的Ajax:误差函数:

 alert(status); 
    alert(error); 
+1

是的,你得到了它。我正在返回HTML。我在form标签中添加了':'data-type'=>'html',现在它正在工作 – Matthew

1

您应该添加

data: { type: 'json' } 

到窗体