2012-05-29 2 views
0

JSON 객체를 가져 오려고하지만 모든 HTML도 가져옵니다.html로 JSON 객체

alert("5 " + request.responseText); 
    var JSONObject = eval(+ "(" + request.responseText + ")"); 
    alert("text1: " + JSONObject.name); 

따라서 첫 번째 줄에는 순수 HTML 코드가 경고로 인쇄됩니다. 이 작업을 수행해야합니까, 아니면 responseText이 JSON 개체로만되어 있습니까? 두 번째 줄이 작동하지 않으므로 세 번째 줄이 인쇄되지 않습니다.

나는 단지 에서 단지 eval을 사용하는 예제를 보았지만, 제 경우에는 작동하지 않습니다 ... 어떤 제안입니까?

+4

서버가 돌아 오는 "헛소리"를 결정합니다. – Pointy

+0

'request.responseText'가 HTML 인 경우 객체에'eval '할 수 없습니다 .. – paislee

+1

"Eval"은 Evil, Dude입니다 : http://squdgy.wordpress.com/2011/10/04/is-javascript -eval-really-evil /. jQuery "getJSON()"과 같은 것을 사용하는 것이 좋습니다. 더 나은 방법은 서버에 JSON 객체를 만드는 것입니다. IMHO ... – paulsm4

답변

0

한쪽 응답에서 서버 쪽의 HTML 및 JSON 추출과 같은 소리가납니다. 브라우저 나 피들러 같은 프록시에서 호출을 확인하여 JSON 만 반환하는지 확인해야합니다.

+0

JSON이 다시 여기에 오는 것처럼 보입니다. responseText를 JSON 만 제거하는 쉬운 방법이 있습니까? – stianlp

+0

HTML 요소 안에 JSON이 있다면 JQuery와 같은 것을 사용하여 responseXml을 통해 JSON을 완성한 다음 JSON 문자열을 구문 분석하면된다. –

+0

나는 지금 이것을하고있다 : \t var json = $ .getJSON (URL); \t 알림 (json); \t 알림 (json.name); 첫 번째 경고가 표시됩니다. [object Object] 두 번째 경고가 인쇄됩니다. 정의되지 않음 그 의미는 무엇입니까? – stianlp

1

시도 방법

jQuery.ParseJSON(request.responceText); 

그러나 첫 번째 서버가 JSON 형식의 데이터를 전송해야합니다?