동일한 ajax 메소드가 다른 PHP에서 반환된 json 데이터를 요청합니다. 하나는 값을 가질 수 있고 다른 하나는 값이 없다는 것이 이상합니다. 다음은 반환 데이터를 수신하는 Ajax 메소드의 처리입니다
<code>function getUpList(_url, _u, _p){ $.ajax({ type:"GET", data:$.param({uid:_u, page:_p}), url:_url, dataType:'json', success:function(obj){ alert(obj.status); if(obj.status == 1){ $('div[name="data-list-p"]').append(obj.html); } } }); }</code>
obj로 얻은 데이터가 실제로 json 형식이라고 확신합니다. 그러나 경고는 항상 정의되지 않아 매우 혼란스럽습니다.
동일한 ajax 메소드가 다른 PHP에서 반환된 json 데이터를 요청합니다. 하나는 값을 가질 수 있고 다른 하나는 값이 없다는 것이 이상합니다. 다음은 반환 데이터를 수신하는 Ajax 메소드의 처리입니다
<code>function getUpList(_url, _u, _p){ $.ajax({ type:"GET", data:$.param({uid:_u, page:_p}), url:_url, dataType:'json', success:function(obj){ alert(obj.status); if(obj.status == 1){ $('div[name="data-list-p"]').append(obj.html); } } }); }</code>
obj로 얻은 데이터가 실제로 json 형식이라고 확신합니다. 그러나 경고는 항상 정의되지 않아 매우 혼란스럽습니다.
참 신기하네요 질문자님, 요청하신 두 데이터가 표준 json
데이터인 게 확실하신가요! 모두 표준이면 undefined
가 표시되지 않아야 합니다. eval
을 추가해 보세요!
<code>success:function(obj){ obj = eval("("+obj+")"); alert(obj.status); if(obj.status == 1){ $('div[name="data-list-p"]').append(obj.html); } }</code>
데이터를 받으셨나요? 크롬 콘솔에서 확인하실 수 있습니다
두 URL에서 반환된 데이터 형식이 잘못되었나요? json이 표준이 아닌지 확인하세요
은 JSON
형식이 아니라 JSON 字符串
형식으로 반환해야 합니다.
Chrome과 Firefox 모두 반환된 매개변수를 볼 수 있습니다. 매우 좋은 확인입니다! ~
성급하게 .status를 출력하지 마세요. 먼저 전체 obj를 출력한 후 결과를 살펴보는 것이 좋습니다~!
php에서 json을 반환하는 코드를 동일하게 변경하고 살펴보세요
흠. 나는 또한 당신이 얻은 것이 json
데이터라고 확신합니다. 그러나 이 obj
에는 실제로 status
속성이 있습니까?
console.log(obj);
이렇게 콘솔로 보시는 것이 더 편리할 것 같습니다.
<code class="javascript">var obj_json = JSON.parse(obj);</code>
문자열이 json이 됩니다