Nicht erfasster TypeError: Der Operator 'in' kann nicht verwendet werden, um nach 'Länge' in zu suchen


100

Nicht gefangener Typfehler: Der Operator 'in' kann nicht verwendet werden, um nach 'Länge' in "zu suchen.

Dies ist der Fehler, den ich erhalte, wenn ich versuche $.each, dieses JSON-Objekt zu bearbeiten:

{"type":"Anuncio","textos":["Probando esto","$ 20150515"],"submit":"codParameters?___DDSESSIONID\u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest"}

Ich habe auch versucht, dasselbe mit stringify zu tun, aber ich erhalte den gleichen Fehler:

{\"type\":\"Anuncio\",\"textos\":[\"Probando esto\",\"$ 20150515\"],\"submit\":\"codParameters?___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest\"}"

Wenn ich Parameter ___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTestaus dem Objekt entferne, funktioniert $ .each einwandfrei.

Warum könnte das passieren?


4
Bitte formatieren Sie Ihren Code, es ist unmöglich, ihn so zu lesen. Sie können die {}Texteditor-Schaltfläche verwenden oder jede Codezeile um 4 Leerzeichen einrücken.
Sidd

Antworten:


233

Der inOperator arbeitet nur an Objekten. Sie verwenden es für eine Zeichenfolge. Stellen Sie sicher, dass Ihr Wert ein Objekt ist, bevor Sie es verwenden $.each. In diesem speziellen Fall müssen Sie den JSON analysieren :

$.each(JSON.parse(myData), ...);

Felix, vor $ .each I have JSON.parse wird der Fehler angezeigt, wenn in der Schlüsselübermittlung der Wert -> "codParameters? ___ DDSESSIONID \ u003d14EA4721A904D6DD71591156996E29F7% 3A% 2FMobilTest" angegeben ist.
Iván Alberto Fontalvo Salgado

Bitte posten Sie Ihren Code, ich kann den von Ihnen beschriebenen Fehler nicht wiederholen
Felix Kling

2
Poste keine Antwort, wenn es keine ist. Bearbeiten Sie Ihre Frage und fügen Sie den entsprechenden Code in die Frage ein.
Felix Kling

2 Stunden verschwendet und es endlich zum Laufen gebracht validator.showErrors(JSON.parse(data)), vielen Dank, Sir.
Mohammed Sufian

Ich erhalte diesen Fehler für $ .each ("ul li", Funktion (k, v) {...});
Cr1xus

17

Vielleicht vergessen Sie, den Parameter dataType: 'json' in Ihr $ .ajax einzufügen

$.ajax({
   type: "POST",
   dataType: "json",
   url: url,
   data: { get_member: id },
   success: function( response ) 
   { 
     //some action here
   },
   error: function( error )
   {
     alert( error );
   }
});

Das hat es mir angetan. Vielen Dank!
Luis Rock
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.