2012-04-30 2 views
1

소셜 네트워킹 사이트의 "Facebook과 공유"와 유사한 기능을 제공해야합니다. Facebook은 중첩 된 iframe과 xd_receiver 개념을 사용합니다. 내 소셜 네트워킹 사이트에서 공유, 게시 또는 추천하기 위해 다른 사이트에서 내 웹 서버 API를 호출하는 데 사용할 수있는 JavaScript API (내 도메인에서 호스팅되는 JS 파일)를 작성하고 싶습니다. 나는 몇 가지 질문이 - (모든 API가 호출되는 경우크로스 도메인 API 호출에 의해 방해받는 JavaScript API

  1. 내가 JS API를 제공하고, DIFF 사이트 소스를 사용하여 JS 파일을로드하더라도, 다시 크로스 도메인 호출됩니다 내가하면 정확하게 이해하고있다) 서버에서 거부 될 것인가? 어떻게 이러한 상황을 극복 할 수 있습니까?

  2. 이 기능을 구현하는 다른 더 좋은 메커니즘이 있습니까?

구현을 계속 진행할 수 있도록 제안 해주세요.

답변

1

기본 방법은 jsonp를 사용하여 교차 도메인 제한을 해결하는 것입니다. http://en.wikipedia.org/wiki/JSONP. 그것은 귀하의 API에 변화가 필요할 수도 있습니다. 사용자가 함수 콜백을 전달하는 스크립트 태그 src을 통해 API를 요청합니다. API는 지정된 함수에 대한 json 응답을 반환합니다.

0

요청은 브라우저가 아니라 JS 파일에서 이루어 지므로 다른 도메인 사이트에서 요청할 때마다 요청이 교차 도메인이됩니다.

서버는 리퍼러 유효성 검사를 구현하는 경우 도메인 간 요청 만 거부합니다.

0

크로스 도메인 요청을 허용하도록

그리고 당신의 API가 귀하의 사이트에서 사용자 지정 내용을 필요로하는 경우 당신은 JSONP를 사용할 수 있습니다 ..., 당신은 당신의 HTTP 응답에 다음과 같은 헤더를 설정해야합니다

Access-Control-Allow-Origin: * 

구현은 사용중인 백엔드에 따라 다릅니다.

요청의 원본 헤더에있는 호스트가 요청의 호스트 이외의 것이라면 응답은 Access-Control-Allow-Origin 헤더에 나열된 원본을 포함해야합니다. 이 헤더를 *로 설정하면 모든 출처가 허용됩니다.

크로스 원본 공유에 대한 자세한 내용은 http://www.w3.org/TR/cors/을 참조하십시오. w3c 문서를 읽지 않는다면 MDN's primer을 확인하십시오.

참고 : Internet Explorer는 도메인 간 요청과 관련하여 자체적으로 작업을 수행합니다. 이 answer은 IE에 문제가있는 경우 좋은 시작입니다.

1

JSONP/이미지/스크립트에서 간단한 get 요청이 아닌 iframe을 사용하는 이유를 알고 계십니까?

답변은 보안입니다. 나는 버튼을 클릭하는 스크립트를 작성할 수 없으며 자동으로 페이지를 좋아할 것입니다.

일반 JSONP와 함께 오래된 자바 스크립트를 사용하면 개발자가 자동으로 버튼을 클릭 할 수 있습니다. 그런 일이 일어나기를 바라십니까?