Uncaught TypeError: нельзя использовать оператор 'in' для поиска 'длины' в


103

Uncaught TypeError: нельзя использовать оператор "in" для поиска "длины" в "

Это ошибка, которую я получаю, когда пытаюсь выполнить a $.eachс этим объектом JSON:

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

Я также пытался сделать то же самое с stringify, но получаю ту же ошибку:

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

Если я удалю параметры ___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTestиз объекта, $ .each будет работать нормально.

Почему это могло происходить?


4
Пожалуйста, отформатируйте свой код, его невозможно прочитать так. Вы можете использовать {}кнопку текстового редактора или сделать отступ каждой строки кода на 4 пробела.
Сидд

Ответы:


239

inОператор работает только на объектах. Вы используете его на веревке. Перед использованием убедитесь, что ваша ценность - это объект $.each. В этом конкретном случае вам нужно проанализировать JSON :

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

Феликс, до $ .each у меня есть JSON.parse, ошибка появляется, когда в ключе submit указано значение -> «codParameters? ___ DDSESSIONID = 14EA4721A904D6DD71591156996E29F7% 3A% 2FMobilTest».
Иван Альберто Фонтальво Сальгадо


2
Не публикуйте ответ, если это не так. Измените вопрос и включить соответствующий код в вопросе.
Феликс Клинг

потратил 2 часа впустую, и, наконец, он заработал validator.showErrors(JSON.parse(data)), спасибо большое, сэр ..
Мохаммед Суфиан

Я получаю эту ошибку для $ .each ("ul li", function (k, v) {...});
Cr1xus

18

возможно, вы забыли добавить параметр dataType: 'json' в свой $ .ajax

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

Это сделало это со мной. Спасибо!
Луис Рок
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.