Uncaught TypeError: Nie można użyć operatora „in” do wyszukania „length” in


101

Uncaught TypeError: Nie można użyć operatora „in” do wyszukania „length” w „

Oto błąd, który otrzymuję, gdy próbuję wykonać a $.eachdo tego obiektu JSON:

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

Próbowałem również zrobić to samo ze stringify, ale otrzymuję ten sam błąd:

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

Jeśli usunę parametry ___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTestz obiektu, $ .each działa dobrze.

Dlaczego tak się dzieje?


4
Sformatuj swój kod, nie można go w ten sposób odczytać. Możesz użyć {}przycisku edytora tekstu lub wciąć 4 spacje w każdym wierszu kodu.
Sidd

Odpowiedzi:


237

inOperator działa wyłącznie na obiektach. Używasz go na sznurku. Przed użyciem upewnij się, że wartość jest obiektem $.each. W tym konkretnym przypadku musisz przeanalizować JSON :

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

Felix, przed $ .each mam JSON.parse, pojawia się błąd, gdy w przesyłaniu klucza mam wartość -> "codParameters? ___ DDSESSIONID \ u003d14EA4721A904D6DD71591156996E29F7% 3A% 2FMobilTest".
Iván Alberto Fontalvo Salgado

Prześlij swój kod, nie mogę powtórzyć opisywanego błędu: jsfiddle.net/5asbeatq
Felix Kling

2
Nie publikuj odpowiedzi, jeśli nią nie jest. Edytować swoje pytanie i podać odpowiedni kod w pytaniu.
Felix Kling

zmarnowałem 2 godziny i wreszcie udało mi się go validator.showErrors(JSON.parse(data))uruchomić, wielkie dzięki sir ..
Mohammed Sufian

Otrzymuję ten błąd dla $ .each ("ul li", function (k, v) {...});
Cr1xus

18

być może zapomniałeś dodać parametr dataType: 'json' w swoim $ .ajax

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

To mi to zrobiło. Dzięki!
Luis Rock
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.