포착되지 않은 TypeError : '길이'를 검색하는 데 'in'연산자를 사용할 수 없습니다.


101

포착되지 않은 TypeError : 'in'연산자를 사용하여 '에서'길이 '를 검색 할 수 없습니다.

$.eachJSON 객체에 대해 수행하려고 할 때 수신하는 오류입니다 .

{"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 공백을 들여.
Sidd

답변:


235

in연산자는 객체에서 작동합니다. 문자열에서 사용하고 있습니다. 를 사용하기 전에 값이 개체인지 확인하십시오 $.each. 이 특정 경우 에는 JSON구문 분석 해야합니다 .

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

Felix, $ .each 전에 JSON.parse가 있으며 키 제출에-> "codParameters? ___ DDSESSIONID \ u003d14EA4721A904D6DD71591156996E29F7 % 3A % 2FMobilTest"값이있을 때 오류가 나타납니다.
Iván Alberto Fontalvo Salgado

코드를 게시하세요. 설명하는 오류를 재현 할 수 없습니다. jsfiddle.net/5asbeatq
Felix Kling

2
답변이 아닌 경우 게시하지 마십시오. 질문을 수정 하고 질문에 관련 코드 포함 하세요.
Felix Kling

2 시간 낭비, 그리고 마지막으로 그것을 사용하여 작업 있어요 validator.showErrors(JSON.parse(data))덕분에 많은 선생님 ..
모하메드 Sufian

$ .each ( "ul li", function (k, v) {...});에 대해이 오류가 발생합니다.
Cr1xus

18

$ .ajax에 dataType : 'json'매개 변수를 추가하는 것을 잊었을 수도 있습니다.

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

그것은 나에게 그것을했다. 감사!
Luis Rock
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.