Uncaught TypeError: Impossible d'utiliser l'opérateur 'in' pour rechercher 'length' dans


101

Uncaught TypeError: Impossible d'utiliser l'opérateur 'in' pour rechercher 'length' in "

C'est l'erreur que je reçois lorsque j'essaye de faire un $.eachà cet objet JSON:

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

J'ai également essayé de faire la même chose avec stringify, mais je reçois la même erreur:

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

Si je supprime des paramètres ___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTestde l'objet, $ .each fonctionne correctement.

Pourquoi cela pourrait-il arriver?


4
Veuillez formater votre code, il est impossible de le lire comme ça. Vous pouvez utiliser le {}bouton de l'éditeur de texte ou mettre en retrait chaque ligne de code de 4 espaces.
Sidd

Réponses:


237

L' inopérateur ne travaille que sur les objets. Vous l'utilisez sur une chaîne. Assurez-vous que votre valeur est un objet avant de l'utiliser $.each. Dans ce cas précis, vous devez analyser le JSON :

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

Felix, avant $ .each j'ai JSON.parse, l'erreur apparaît lorsque dans la clé soumettre ont la valeur -> "codParameters? ___ DDSESSIONID \ u003d14EA4721A904D6DD71591156996E29F7% 3A% 2FMobilTest".
Iván Alberto Fontalvo Salgado

Veuillez poster votre code, je ne peux pas reproduire l'erreur que vous décrivez: jsfiddle.net/5asbeatq
Felix Kling

2
Ne postez pas de réponse si ce n'est pas une réponse. Modifiez votre question et incluez le code correspondant dans la question.
Felix Kling

gaspillé 2 heures, et finalement réussi à l'utiliser validator.showErrors(JSON.parse(data)), merci beaucoup monsieur ..
Mohammed Sufian

J'obtiens cette erreur pour $ .each ("ul li", function (k, v) {...});
Cr1xus

18

peut-être avez-vous oublié d'ajouter le paramètre dataType: 'json' dans votre $ .ajax

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

Cela m'a fait ça. Merci!
Luis Rock
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.