2010-06-19 2 views
2

위키 피 디아에서 xml 파일을 내 플래시 무비로로드하려고합니다.AS3 다른 도메인에서 XML로드 중

loader = new URLLoader(); 
loader.addEventListener(Event.COMPLETE, tweetLoaded); 
loader.load(new URLRequest("http://en.wikipedia.org/w/api.php?action=query&rvprop=content&format=xml&pageids="+subNum)); 
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOErrorFunction); 

플래시 파일을 로컬로 실행할 때 제대로 작동하지만 내 도메인에 업로드하면 작동하지 않는 것 같습니다. 크로스 도메인 규칙이 XML 파일에만 이미지 및 기타 미디어에만 적용되지 않는다는 것을 다른 곳에서는 읽었습니다. 사실입니까? 그렇지 않다면 swf가 호스팅되어있는 도메인이 아닌 다른 도메인의 XML 파일을로드 할 수 있습니까?

감사

편집 : 난 정말 혼란 스러워요 좋아

, 내 프로그램 쿼리 빙 API와 미디어 위키 API 모두. Bing API 호출이 제대로 작동하므로 XML 검색 결과를 다시 검색 할 수 있습니다. 그러나 위키 백과 통화는 작동하지 않습니다 (온라인). 위키 피 디아 통화에서 Security_Error를 청취하려고 시도했지만 발동하지 않습니다.

누구에게 아이디어가 있습니까? 그것을 조금 잃는다.

답변

3

해결 방법은 서버 측 언어로 프록시를 설정하는 것이므로 swf가 도메인의 데이터를로드합니다. 이 프록시는 요청을 실제 호스트로 전달하고 응답을 swf에 반환합니다. 플래시 측면에서, 이것은 투명하게 작동합니다.

당신은 더 많거나 적은 sofisticated 프록시를 만들 수 있지만,이 (PHP에서)처럼 간단 할 수있다 :

echo file_get_contents($_GET['target_url']); 

이 당신에게 아이디어를주고 그냥, 당신은 target_url 매개 변수의 유효성을 검사 할 수 있습니다 .

swf가이 PHP 스크립트를 호출하고 target_url을 매개 변수로 전달하십시오. 이런 식으로 뭔가 : PHP를위한이 URL의 수는 fopen을 (유사한 권한을 다른 서버 측 기술에 대한 neccesary 수 있습니다)이 필요하다고

var url:String = "proxy.php"; 
var paramVal:String = encodeURIComponent("http://en.wikipedia.org/w/api.php?action=query&rvprop=content&format=xml&pageids="+subNum); 
url += "?target_url=" + paramVal; 
loader.load(new URLRequest(url)); 

참고. 또한, 이것은 서버 대역폭 소비에 영향을 미친다는 것을 명심하십시오. 그들은 다른 도메인의 SWF에 대한 액세스를 허용하는 장소에서 도메인 간 정책 파일을 가지고 있기 때문에

PS

빙 작동합니다.

http://api.bing.net/crossdomain.xml

위키 백과는 당신이 당신의 SWF에서 직접 연결할 수 있도록, 다른 도메인의 액세스 권한을 부여하는 도메인 간 정책 파일이 없습니다.

+0

아, 감사합니다. 그저 이상한 것처럼 보입니다. BING을 쿼리하여 교차 도메인 XML 파일을 사용하여 수행 할 수있는 이미지를 플래시에 연결할 수 없습니까? –

+0

@ user150946 Bing에 관한 제 편집을 확인하십시오. –

+0

설명해 주셔서 감사합니다. PHP 대신 Javascript/JQuery를 사용할 수 있습니까? –

5

도움을 주셔서 대단히 감사합니다. 결국 나는 http://pipes.yahoo.com

ID 번호를받은 파이프를 만들고 해당 위키피디아 페이지의 제목을 가진 JSON 개체를 만들어 냈다. 당신은 다른 사람이 당신이이 도메인과 야후 API를 URL http://pipes.yahooapis.com/ 에서 파이프에 액세스 확인해야이 일을 위해 여기 http://pipes.yahoo.com/wikibyid

사용할 수 있습니다

은 crossdomain.xml 파일이 있습니다.

+0

다행 이네 다행 이네이 서비스가 존재한다는 것을 몰랐어 알았어 아주 시원해 보이고 확실히 사용할 수있어 공유 할께 고마워! –

관련 문제