문제

다른 도메인의 서버에 대한 HTTP GET 요청을 기반으로 데이터를 표시하는 JavaScript를 작성하려고합니다. 내가 읽은 내용에서, 이것은 SOP (동일한 원산지 정책)로 인해 까다로워집니다.

Snap.com "Snap Shots"(웹 페이지 미리보기)가 어떻게 작동하는지 궁금합니다. 예제 페이지는 다음과 같습니다. http://premshree.livejournal.com/66129.html

누군가 이것이 어떻게 가능한지 설명 할 수 있습니까? Snap.com "Snap Shots"를 활성화하려면 헤더에 javascrpt를 추가하기 만하면됩니다. 예제 웹 페이지가 SOP에 불순종하는 것 같습니다.

도움이 되었습니까?

해결책

"Snap Shots"JavaScript는 Snap.com에서 호스팅되므로 Snap.com에 모두 액세스 할 수 있습니다. 그러나 LiveJournal.com의 페이지에 전화를 걸 수는 없습니다.

도움이 되었기를 바랍니다.

다른 팁

Ian의 답변에 따라 Ajax가 JSONP를 사용하여 SOP가 제시 한 도메인 장벽을 건너도록 할 수 있습니다. JSONP는 무엇입니까? 그것은 우리 모두가 알고 사랑하는 것과 동일한 JSON 객체이지만 기능으로 싸여 있습니다. JSON :

{
  prop1: "a",
  prop2: 7
}

JSONP :

myfunction(
{
  prop1: "a",
  prop2: 7
});
보시다시피, JSON 객체는 매개 변수로 전달됩니다. myfunction 기능. 따라서 간단한 것을 사용하여 다른 도메인에서 호스팅되는 스크립트 리소스에 연결하려면 script 태그 및 해당 리소스가 JSONP 데이터를 반환 한 다음 단순히 함수를 정의 할 수 있습니다. myfunction JSON 객체를 받아들이고 그로 무언가를합니다. JQuery는 jsonp ajax 호출을 사용하여 지원합니다 getjson 방법. jQuery는 ajax 호출을하는 대신 a를 삽입합니다. script 데이터를 얻으려고하는 URL을 가리키는 태그. 스크립트가로드되면 콜백 함수가 실행되고 voila! - JSON 데이터가 있습니다! 이 기술에는 3 가지 전제 조건이 있습니다.

  1. 데이터를 요청하려는 서비스는 JSON을 반환합니다 (기본적으로 또는 매개 변수를 사용하여 요청시).
  2. 이 서비스는 JSON 데이터를 랩핑 할 콜백 함수를 지정하여 JSONP를 지원합니다.
  3. 귀하는 코드가 귀하의 사이트에서 실행할 수있을 정도로이 외부 소스를 신뢰합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top