Errore di tipo non rilevato: non è possibile utilizzare l'operatore "in" per cercare "length" in


101

Errore di tipo non rilevato: impossibile utilizzare l'operatore "in" per cercare "length" in "

Questo è l'errore che ricevo quando provo a fare un $.eacha questo oggetto JSON:

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

Ho anche provato a fare lo stesso con stringify, ma ricevo lo stesso errore:

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

Se rimuovo i parametri ___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTestdall'oggetto $ .each funziona bene.

Perché potrebbe succedere?


4
Si prega di formattare il codice, è impossibile leggerlo in questo modo. È possibile utilizzare il {}pulsante dell'editor di testo o far rientrare ogni riga di codice di 4 spazi.
Sidd

Risposte:


237

L' inoperatore lavora solo sugli oggetti. Lo stai usando su una stringa. Assicurati che il tuo valore sia un oggetto prima di utilizzarlo $.each. In questo caso specifico, devi analizzare il JSON :

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

Felix, prima di $ .each ho JSON.parse, l'errore appare quando nella chiave submit hanno il valore -> "codParameters? ___ DDSESSIONID \ u003d14EA4721A904D6DD71591156996E29F7% 3A% 2FMobilTest".
Iván Alberto Fontalvo Salgado


2
Non pubblicare una risposta se non è una. Modifica la tua domanda e includi il codice pertinente nella domanda.
Felix Kling

ho sprecato 2 ore, e finalmente l'ho fatto funzionare usando validator.showErrors(JSON.parse(data)), grazie mille signore ..
Mohammed Sufian

Ottengo questo errore per $ .each ("ul li", function (k, v) {...});
Cr1xus

18

forse ti sei dimenticato di aggiungere il parametro dataType: 'json' nel tuo $ .ajax

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

Questo mi ha fatto. Grazie!
Luis Rock
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.