0

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

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

这些图像托管在 Amazon 的 CDN 上,它们的基本 URL 类似于:

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,我的代码中的任何地方都没有“代理”这个词,无论是客户端还是服务器端。

关于通过 https 提供的 iframe 画布页面中的外部托管内容,我有什么不知道的吗?

4

1 回答 1

0

我发现了问题。

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

问题是,flashcanvas 源代码被最小化/混淆,所以字符串“代理”是不可见的。

于 2011-10-01T10:54:02.357 回答