我在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提供的外部托管内容是否有我不了解的内容?
答案 0 :(得分:0)
我发现了问题。
我在IE中使用 flashcanvas 来模拟< canvas>元件。 Flash存在跨域资产访问安全问题,因此applet通过代理php脚本(实际包含在发行版中,lol)请求它们。
麻烦的是,flashcanvas源代码被最小化/混淆,因此字符串'proxy'不可见。