2010-06-09 5 views
4

내가 같은 하위 도메인에 상주하는 XML 반환하는 다음과 같은 jQuery를 사용 : 나는 방화범이를 실행할 때마다 지금jquery를 사용하여 jsonp에서 반환 된 xml을 처리하는 방법은 무엇입니까?

$.getJSON(myurl, function(data) 
{ 
    debugger; 
    alert(data); 
}); 

을, 나는 말을 불을 지르고에서 JS 오류가 : 없음; before 진술. 반환 된 데이터는 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="somenamespace">...somedata...</string> 

원하는 데이터가 반환되지만 사용 방법은 확실하지 않습니다. somedata에 액세스해야하지만 할 수 없습니다. Firebug는 기능을 멈추지 않습니다. 제대로 진행하려면 어떻게해야합니까?

답변

0

XML이 반환되기를 기대하지만 JSON이 필요한 함수를 호출하는 것처럼 보입니다. XML과 JSON은 데이터를 인코딩하는 두 가지 다른 방법입니다.

XML을 문자열로 가져 오려면 jQuery의 get 함수를 사용할 수 있습니다. 이렇게하려면 ...somedata...을 추출하기 위해 문자열을 직접 구문 분석해야합니다. 당신이 jQuery로 XML 응답의 내용을 처리하려는 경우

그러나 그런 다음 가장 좋은 방법은 ajax 기능을 사용하는 것입니다

$.ajax({ 
    url: myurl, 
    dataType: 'xml', 
    success: function(data) { 
     debugger; 
     alert(data); 
     // untested: 
     var theValue = $('string', data).text(); 
    } 
}); 
+1

감사합니다, URL이 다른 도메인에있을 때 그 일이 있습니까? – vikasde

+0

xml 데이터 유형을 사용할 때 403이 표시됩니다. – vikasde

+1

http://api.jquery.com/jQuery.ajax/#dataType 예를 들어, 텍스트 응답을 XML로 처리하려면 dataType에 "text xml"을 사용하십시오. JSONP 요청을 텍스트로 수신하고 jQuery로 XML : "jsonp text xml"로 해석 할 수도 있습니다. 마찬가지로, "jsonp xml"과 같은 속기 문자열은 먼저 jsonp에서 xml로 변환하려고 시도하고, 실패하면 jsonp에서 텍스트로 변환 한 다음 텍스트를 xml로 변환합니다. – jhanifen

관련 문제