Rails:远程ajax总是触发失败



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

$('#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!');
});

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

要诊断它,请在ajax:error函数中添加:

     alert(status);
     alert(error);

你应该加上

data: { type: 'json' }

最新更新