JQuery AJAX: ошибка запускается, даже если ответ в порядке 200
У меня есть форма, которая отправляет форму через AJAX с: remote = & gt; правда. Глядя на журнал сервера и FireBug, я получаю ответ 200 OK, и он возвращает JSON в виде:
{ "email": "[email protected]"}
тогда у меня есть эти два обработчика:
$('#new_invitation').bind("ajax:success", function(event, data, status, xhr) {
alert('test');
});
$('#new_invitation').bind("ajax:error", function() {
alert('error');
});
и даже если я получу обратно 200OK, это обработчик ошибок, который срабатывает. Единственный раз, когда мне удалось заставить обработчик успеха работать, был когда я отправляю пустой ответ с 200 в заголовке.
Я не могу понять, почему это не работает: -S
РЕДАКТИРОВАТЬ 1 ------------ После выполнения этих изменений:
$('#new_invitation').bind("ajaxSuccess", function(event, data, status, xhr) {
alert('test');
});
$('#new_invitation').bind("ajaxError", function(jqXHR, textStatus, errorThrown) {
alert('error');
console.log(jqXHR.responseText);
console.log(textStatus.responseText);
console.log(errorThrown.responseText);
});
Я все еще получаю ту же ошибку. Материал журнала дает мне:
undefined
[email protected]
undefined
Вот код для формы (стандартный материал Rails):
<%= form_for @shoot.invitations.new, :url=>shoot_invitations_path(@shoot), :remote => true, :html => {:class => 'form-inline'} do |f| %>
<%= f.text_field :email, :'placeholder' => 'ex: [email protected]' %>
<%= f.text_field :role, :'placeholder' => 'ex: Photographer' %>
<%= f.submit "Invite", :class => 'btn btn-success' %>
<% end %>
РЕДАКТИРОВАТЬ 2 ---------
Я сделал несколько изменений, и теперь кажется, что моя ошибка - ошибка разбора. Я не понимаю, потому что это тот JSON, который я получаю с сервера (data.responseText), что кажется хорошим:
{"email":"[email protected]"}
ОТВЕТ --------- Мне удалось заставить все работать, когда я поставил: «тип данных»; = & GT; : json в опциях формы. Я пробовал это раньше, и это не сработало, потому что я поместил его в опции form_tag, а не в опции html ...