通过https在画布页面上的IE8中重写外部(CDN托管)图像请求URL,请求proxy.php

时间:2011-09-30 17:11:01

标签: iframe https external cdn facebook-canvas

我在Facebook上有一个基于画布的应用程序很多要加载的图像,所以我用JavaScript创建它们。

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

图像托管在亚马逊的CDN上,其基本网址类似于:

https://example.cloudfront.net/example_path/example.png

托管在云端(EC2,也是亚马逊)的应用程序的URL类似于:

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

适用于大多数浏览器,但不适用于IE(8)。

在IE中,如果我检查创建的图像的 src 属性,它会显示正确的URL,但浏览器会发出以下请求:

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

我的服务器上没有 proxy.php ,我的代码中也没有“代理”一词,无论是客户端还是服务器端。

在iframe画布页面中,通过https提供的外部托管内容是否有我不了解的内容?

1 个答案:

答案 0 :(得分:0)

我发现了问题。

我在IE中使用 flashcanvas 来模拟< canvas>元件。 Flash存在跨域资产访问安全问题,因此applet通过代理php脚本(实际包含在发行版中,lol)请求它们。

麻烦的是,flashcanvas源代码被最小化/混淆,因此字符串'proxy'不可见。