2011-09-30 1 views
0

페이스 북에 캔버스 기반 앱이 있습니다. 이미지를 많이 넣으므로 이미지를로드합니다. 자바 스크립트에서.캔버스 페이지의 IE8에서 https로 캔버스 페이지의 외부 (CDN 호스팅) 이미지 요청 URL을 다시 작성하고 proxy.php를 묻습니다.

var img = new Image(); 
img.src = document.location.protocol + '//example.cloudfront.net/example_path/example.png'; 

이미지는 아마존의 CDN에서 호스팅되는, 자신의 기본 URL과 유사한 :

클라우드 (EC2, 또한 아마존)에서 호스팅
https://example.cloudfront.net/example_path/example.png 

응용 프로그램의 URL은 유사합니다

https://cloud.example.com/path_to_app/ 

대부분의 브라우저에서 작동하지만 IE (8)에서는 작동하지 않습니다. 나는 SRC에게 생성 된 이미지의 속성을 검사하면 IE에서

, 그것은 올바른 URL을 보여 주지만, 브라우저는 다음과 같은 요구한다 :

GET /path_to_app/proxy.php?url=https://example.cloudfront.net/example_path/example.png HTTPS/1.1 

에 더 proxy.php이를 내 서버가 아니며 '프록시'라는 단어가 내 코드의 어느 곳에도 존재하지 않으며 클라이언트 측이나 서버 측이 아닙니다.

https를 통해 제공되는 iframe 캔버스 페이지에서 외부 호스팅 콘텐츠에 대해 모르는 뭔가가 있습니까?

답변

0

문제점을 발견했습니다.

IE에서 flashcanvas을 사용하여 < 캔버스 > 요소를 에뮬레이션합니다. Flash에는 도메인 간 자산 액세스 보안 문제가 있으므로 애플릿은 프록시 PHP 스크립트 (실제로 배포본에 포함됨)를 통해 요청합니다.

문제는 flashcanvas 소스 코드가 최소화되었거나 난독 화되어 'proxy'문자열이 보이지 않는 문제였습니다.