2012-02-17 1 views
2

내 서비스가 아닌 서비스에서 XML 정보를 가져 오려고합니다. 기본적으로 사용자는 다른 서비스에서 인증을 받고 스크립트는 사이트 간 인증 쿠키를 사용하여 정보를 가져와야합니다.jquery로 교차 사이트 XML 응답 받기

jquery를 사용하여 처리하고 싶은 응답이 서비스 (firebug를 통해)에 의해 반환되는 것을 볼 수 있습니다. 즉 jsonp를 사용하여 전화를 걸면 jquery 구문 분석 오류를 반환합니다.

YQL 및 프록시 서버와 같이 이러한 종류의 작업을 수행하기 위해 마주 치게 된 모든 솔루션을 사용해 보았습니다.

여기 내 좌절감은 내가 원하는 응답을보고 있지만 jquery가 원시 정보를주지 않는다는 것입니다.

json 응답을 기대하는 함수를 호출하고 있지만 이에 대한 대안이나 다른 방법이 없다는 것을 알고 있습니다. xmlp xD를 좋아하십시오.

$.ajax(
     { 
      url: "serviceurl", 

      dataType: 'jsonp', //I've tried 'jsonp xml' 


      crossDomain: true, 
      xhrFields: { 
       withCredentials: true 
      }, 
      success: function() 
      { 
       alert('Load was performed.'); 
      }, 

      error: function(jqxhr,error) 
      { 
       alert('Failed!'); 
      }, 

     }); 

편집 : 다음은 서버의 출력이 단순히 다른 도메인가 CORS를 지원하지 않는 한 크로스 도메인 소스에서 XML을 요청 할 수 없습니다

<User> 
DVD_PT 
</User> 
<Apps> 
<App> 
    <name>Last.fm Scrobbler</name> 
</App> 
</Apps> 

감사

+0

응답을 게시 할 수 있습니까? –

+0

Matt 나는 서버 응답을 넣기 위해 질문을 편집했습니다. 귀하의 질문에 대한 jquery에 대한 간단한 파서 오류가 발생 케빈 언급 한 – DVD

+0

"jsonp 텍스트 xml"시도한 언급 한? 그 내용은 텍스트로 받아 들여지고 xml로 jQuery로 해석 될 것이라고 믿습니다. –

답변

0

입니다.

이미 언급 한 것처럼 YQL 같은 프록시를 사용해야합니다.

JSONP로 데이터 유형을 설정할 때 표시되는 응답은 <script> 태그 안에 있습니다. 예를 들어, 당신이지고있다 : note.xml는

<script src="http://example.com/note.xml"></script> 

입니다 :이 유효 자바 스크립트가 아니기 때문에 당연히 오류가 발생합니다

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!-- Edited by XMLSpy® --> 
<note> 
<to>Tove</to> 
<from>Jani</from> 
<heading>Reminder</heading> 
<body>Don't forget me this weekend!</body> 
</note> 

.

+0

나는 알고 있습니다. 내가 인증 쿠키를 보낼 수 없기 때문에 프록시를 사용할 수 없습니다. 액세스 권한이 없으므로 프록시를 사용할 수 없습니다. 이제 브라우저가 데이터를 가져 오는 방법이 궁금합니다. 내가 정상적으로 URL을 요청하면 데이터를 볼 수 있기 때문에 그 행동을 모방 할 방법이 없기 때문에 나는 이것을 묻고있다. – DVD

+0

@DVD - 보안상의 문제가 있으므로 안됩니다. 브라우저가 CORS 헤더를 반환하지 않는 한 특별히 다른 도메인에서 데이터를받지 못하게합니다. 인증 키를 사용하여 서버의 페이지를 요청한 다음 서버가 도메인 간 http 요청을 수행하도록 할 수 있습니까? –

+0

나는 그것을 할 수 있었고 나는 다른 방법을 찾을 수 없었기 때문에 아마 나올 것이다. 그러나 아이디어는 원래의 xD보다 정보를 읽고 정보를 보여주는 간단한 스크립트 일 뿐이다. – DVD