2010-08-12 1 views
0

JavaScript API 서비스를 개발 중입니다. 기본 HTML 페이지는 다음과 같습니다.크로스 사이트 자바 스크립트 문제

<html> 
<head> 
    <script type="text/javascript" src="scripts/logic.js"></script> 
    <script type="text/javascript" src="scripts/jquery-1..."></script> 
    <script type="text/javascript" src="http://mydomain/api/main.js"></script> 
</head> 
... 
</html> 

main.js 스크립트에서 mydomain에서 다른 스크립트를로드합니다. 스크립트 태그 ([script .. src = "http : //mydomain/api/getsomedata.js? callback_id = 3434 & someparams = ..."])를 추가하여이 작업을 수행하고 있습니다. 로드 된 스크립트는 imagily API 콜백 함수 인 MyApi.processCallback (...)을 호출합니다. 모든 것은 괜찮습니다.

그러나 로컬 파일 (logic.js)에서 다른 mydomain 스크립트를로드하려고 할 때 매우 이상한 상황이 발생합니다. 모든 스크립트 전역 개체는 정의되지 않았습니다. 이전 호출 중에 표시되었던 MyApi 객체 또는 jQuery $ 객체가 없습니다. 그래서 MyApi 콜백 함수를 호출 할 수 없습니다.

아마도 보안 제한 때문입니다. Anti-XSS 또는 유사한 것. 모든 Google 자바 스크립트 API에서와 마찬가지로 X-XSS- 보호 헤더를 추가하려고했습니다. 그러나 도움이되지 않았습니다.

IFRAMES를 사용하지 않습니다.

동일한 아이디어로 많은 크로스 사이트 JavaScript API (Google지도 API 등)가 작동하기 때문에 문제를 정확하게 해결할 수 있습니다.

답변

0

스크립트에서 어떤 현상이 발생하고 있습니까?

도메인으로 Ajax 호출을 다시 수행하는 경우 스크립트는 동일한 출처 보안 오류로 실패합니다. JSONP을 사용해야 할 때보 다 다른 도메인에서 서버와 통신해야하는 경우. 현대적인 브라우저 만 사용하는 경우 CORS으로 벗어날 수 있습니다.