Я использую Rails 3 и JQuery 1.4.2 и пытаюсь привязать к обратному вызову ajax: failure для данной отправки удаленной формы. Обратный вызов работает отлично, однако переменная xhr, которая передается обратно, кажется, как-то теряет атрибут responseText.JQuery and Rails 3 ajax: callback
Вот что мой код выглядит следующим образом:
_form.html.haml
= form_for(object, :remote => true) do |f|
= form fields and such...
Javascript где-то ...
$('form').livequery('ajax:loading', function() {
// what to do on ajax loading
}).livequery('ajax:success', function(data, status, xhr) {
}).livequery('ajax:failure', function(xhr, status, error) {
alert(xhr.responseText);
});
Я в основном оказывающего сообщения об ошибках объекта из контроллер, чтобы я мог отображать уведомления об ошибках в этом обратном вызове. Странно то, я иду в rails.js, строки 49-51
error: function (xhr, status, error) {
el.trigger('ajax:failure', [xhr, status, error]);
}
и вручную написать в консоли responseText, это работает так, как я бы ожидать.
Я что-то не так? Как бы объект xhr изменился с rails.js на мою привязку?
Я также понял, почему вары не совпадают. Видимо, поскольку я привязываюсь к событию, первая переменная, переданная в, будет фактическим событием, которое будет передано с xhr, статусом и ошибкой, также передаваемой после него. – ncavig