jQuery ajax:Fehler läuft, auch wenn die Antwort 200 OK

Ich habe ein Formular, das senden eines Formulars per AJAX mit :remote => true. Blick auf den server-log und FireBug erhalte ich die Antwort 200 OK und es gibt JSON, in form von:

{ "email": "[email protected]"}

dann habe ich diese beiden Handler:

$('#new_invitation').bind("ajax:success", function(event, data, status, xhr) {
    alert('test');
});

$('#new_invitation').bind("ajax:error", function() {
    alert('error');
});

und auch wenn ich wieder eine 200OK, es ist der Fehler-handler, der feuert. Die einzige Zeit, die ich es geschafft, die Erfolgs-handler Arbeit war, als ich senden Sie eine leere Antwort mit 200 in die header.

Ich kann nicht herausfinden, warum dies nicht funktioniert :-S

BEARBEITEN 1------------
Nachdem Sie diese änderungen:

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

Ich bin noch immer der gleiche Fehler. Die log-Zeug gibt mir:

undefined
my_email@test.com
undefined

Hier ist der code für das Formular (standard-Schienen Zeug):

<%= 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 %>

BEARBEITEN 2 ---------

Hab ich einige verpasst und jetzt scheint es mein Fehler ist ein parse error. Ich verstehe nicht, denn das ist der JSON-bin ich immer wieder vom server (Daten.responseText), das scheint alles gut:

{"email":"[email protected]"}

ANTWORT ---------
Ich habe dann alles funktionieren, wenn ich :'data-type' => :json in form von Optionen. Ich versuchte dies vor und es hat nicht funktioniert, weil ich es in der form_tag-Optionen und nicht die html-Optionen...

  • Zeigen Sie uns Ihre ajax-request.
  • console.melden Sie sich für alle drei Argumente, mehr als wahrscheinlich, werden Sie immer parseerror-was bedeuten würde, ungültiges json.
  • Kevin=> ich bin nicht einmal reagiert mit JSON. Ich habe auf den ersten, aber nicht ich bin nur stur einen text-string und es immer noch nicht.
  • was bedeutet der ajax Aufruf Aussehen? Zeigen Sie bitte, dass Sie code.
  • Ich habe nicht einen code schreiben, es ist der Standard-jQuery-UJS-Sachen, die automatisch Hinzugefügt wird, wenn Sie verwenden,: remote => true, in der form... es sei denn, Sie sind über etwas anderes reden?
InformationsquelleAutor Alain | 2012-05-31
Schreibe einen Kommentar