2010-07-08 2 views
1

내 페이지에서 div로 jQuery로드 함수를 사용하여 외부 콘텐츠를로드하려고합니다. load 메소드는 로컬 컨텐트와 함께 작동하지만 도메인에서 원하는 것이 있으면 작동하지 않습니다.클라이언트 스크립트에서 도메인 간 콘텐츠 사용 (보안 문제)

$("#result").load("http://extrnal.com/page.htm #data); 

(보안 경고가있는 IE에서는 실제로 작동하지만 크롬에서는 전혀 작동하지 않습니다.) jQuery 문서에서는 보안상의 이유로 크로스 도메인 콘텐츠가 제한적이기 때문에 이것이 옳다고 말합니다. .getJSON 메서드를 사용하면 같은 경고가 나타납니다.

 var request = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Ffinance.yahoo.com%2Fq%3Fs%3Dyhoo%22&format=json&diagnostics=true&callback=?"; 
     $.getJSON(request, function (json) { 
      alert(json); 
     } 
     ); 

을 그리고 정말 작동 : A는 내가로드 콘텐츠를 YQL을 사용하여 매우 흥미로운 접근 방식을 발견 약간 인터넷 검색 후

확인, 나는 다음과 같이 몇 가지 예를 시도했습니다! 지금은 이해 해달라고 무엇

http://query.yahooapis.com는 크로스 도메인 Resouce의하지만 브라우저 점이다 (IE와 크롬 모두) 그와 함께 작동 확인?

차이점은 무엇입니까? 내가 뭘 놓치고 있니?

답변

0

감사를 정의하지만, 불행히도 둘 다의하지 내가 다시 체크 아웃 한

내 orginal 한 질문 .. 답변 질문에 대한 질문을 stackoverflow (나는 그것을 먼저 해야할지)와 같은 행동의 이유를 발견.

첫 번째 코드 snipset 데이터를 가져 오지하기 위해 AJAX/JSON을 사용하며,이 때문에 동일 출처 정책의 허용됩니다. 그러나 YQL에 대한 요청은 대신 JSONP를 사용합니다.

JSONP 내가 행동을 undrestand하지 않았다 그 이유는, 내가 모르는 뭔가를했다. JSONP에

소개 정보는 여기에서 볼 수 있습니다 : http://ajaxian.com/archives/jsonp-json-with-padding

0

이 같은 외부 사이트 JSON에 만들 수 있습니다

callback({key:value,etc:1}) 

과 당신의 답변을

function callback(json) { 
    ..here is processing.. 
} 
+0

를 확실히 내 질문에 대답하지, 실제로 JSONP입니다 .. –