크로스 도메인이 아니라고 하면 JSON이던 XML이던 상관없습니다. 하지만 크로스 도메인아라면 기본적으로 서버의 데이터를 가져오기 위해서 사용하는 XmlHttpRequest로의 요청이 가능하지 않습니다. 즉 JSON이던 XML이던 다 안됩니다. 그래서 크로스 도메인을 우회하기 위해 JSONP( http://en.wikipedia.org/wiki/JSONP )라는 기술을 사용합니다.
JSONP를 사용하게 되면 서버에서 데이터를 되돌려줄때 단순한 JSON데이터 자체가 아니라 JavaScript코드를 가져오게 됩니다. 예를 들어 {text:'abcd', number:1234}가 아니라 callback 함수를 쿼리로 받아 JSONP포맷에 맞춰서 되돌려주죠. callback({text:'abcd', number:1234}); JSONP는 많이 사용하기 때문에 jQuery라이브러리등에 다 구현이 되어있습니다. 쉽게 쓸수 있죠.
1. XML을 반드시 사용해야 한다면 XML을 JSON안으로 포함시키는 방법도 있을수 있습니다. 물론 그 경우에 escape를 잘해야할거구요 예를 들어 callback({xml:'<xml></xml>'}); 이런식으로 할수는 있죠. 어쨌든 서버에서 나오는 결과물을 고쳐야하고 클라이언트에서 어떻게 처리할지 약속을 잘잡아야겠죠.
2. 만약 서버를 전혀 건드릴수 없고 생성되는 XML문서를 고칠수 없다면! 크로스 도메인을 해결하는 방식으로 가셔야합니다. 그럴려면 현재 도메인의 서버에서 프록시로 처리해야겠죠. 프록시 방식중에 외국의 게시물들을 보면 YQL을 이용하는 경우도 있습니다만 굳이 또 다른 외국의 서버를 공유하는 것이니 국내에서는 해결책으로 쓰기 뭐하죠.