我有一个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' }