2010-01-24 3 views
4

"AJAX"로 현재 도메인 이름 외부에서 전화를 걸 수없는 것 같습니다. 하지만 JQuery에서 Twitter API (JSON 사용)를 호출 할 수 있습니다 ... 둘 다 XMLHTTP 객체를 사용하고 있지 않습니까? 그렇다면 JSON을 사용하여 다른 도메인 이름을 호출 할 수 있습니까? (JQuery 사용) AJAX와는 다른 도메인 이름을 호출 할 수 있습니까? 어쨌든 Ajax와 JSON의 차이점은 무엇입니까?AJAX VS JSon "교차 도메인 기본 제공 보안"질문

답변

7

트위터 API는 XMLHTTPRequest를 사용하지 않는 JSONP를 사용하지만 <script> 태그를 사용하여 "외국"자바 스크립트를 포함합니다. 이 스크립트는 자신의 자바 스크립트 내에서 함수를 호출합니다.

타사 웹 사이트에서의 Google지도 통합은이 "해킹"없이는 가능하지 않습니다 (사실 해킹입니다).

여기 JSONP에 대한 추가 정보를 원하시면입니다 :

http://en.wikipedia.org/wiki/JSON#JSONP

+0

아아 .. 그거 이해해! 감사! – mrmuggles

0

JSON은 AJAX는 자바 스크립트 기술에 대한 인 반면, 파일 형식입니다 : http://ajaxian.com/archives/jsonp-json-with-padding

또는 JSON에 위키 피 디아 문서

페이지로드가 완료된 후 웹 서버에서 데이터를 보내고받습니다. AJAX의 X는 JSON의 대안 인 XML (파일 형식이기도합니다)이지만 사람들이 AJAX라고 부르는 많은 것들이 실제로 XML을 전혀 사용하지 않기 때문에 약간의 잘못된 이름입니다.

JSONP에 대한 Mr LeyBaert의 링크는 실제로 Twitter API에서 무슨 일이 벌어지고 있는지를 설명하는 데 매우 유용합니다. 그것은 XMLHTMLRequesting이 아닙니다. 트위터 웹 사이트의 자바 스크립트 파일을 가리키는 다른 스크립트 태그가 있습니다. 그러면 페이지가 처음로드 될 때 나머지 페이지와 함께로드됩니다.

당신은 이것을 통해 깔끔한 것들을 얻을 수 있지만 숨겨진 IFrame이나 이와 유사한 것들로 어지럽히 기 시작하지 않는다면 페이지가로드 된 후 (AJAX처럼) 할 수 있다고 생각하지 않습니다. XMLHTTPRequests없이 AJAX 스타일의 물건을 얻고 싶다면 원하는 것을 살펴 봐야한다. 다른 사이트의 스크립트 (또는 유사)를 요청하는 페이지를 참조하는 IFrame을 문서에 동적으로 추가합니다. 이 here의 장단점에 대한 토론이 있습니다.

+0

페이지를로드 한 후에도 완벽하게 처리 할 수 ​​있습니다. jQuery를 사용하는 경우 매우 쉽게 수행 할 수 있으며 모든 브라우저에서 작동합니다. 실제로 Google Maps는 JSONP를 통해 모든 서버 통신을 처리하며 페이지가로드 된 후 모두 완료됩니다. –

+1

PimTerry에서는 '