HTML5 Rackspace Access-Control-Allow-Origin不起作用

时间:2012-04-16 02:10:11

标签: html5 http cross-domain cors rackspace

所以我在Rackspace Cloud Files上有一些视频文件,但由于我使用HTML5函数(.toDataURL())“SECURITY_ERR:DOM异常18”不断被抛出。当我在服务器上使用视频文件时,我的代码工作正常。

所以我读了一下CORS并修改了我的Rackspace Cloud Files标题:

access-control-allow-credentials:   true    
access-control-allow-origin:    [my domain here]    
access-control-allow-headers:   Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control
access-control-allow-methods:   OPTIONS, GET, POST  
access-control-expose-headers:  X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name
Content-Type:   video/webm

但DOM异常18错误不断被抛出。我不知道问题是什么。我检查了我的视频文件是否在Rackspace和web-sniffer.net上输出了HTTP标题,它们是什么问题,为什么它不起作用?

我在IE9,Chrome 19,Safari 5.1.2和Aurora 12.0a2上试过它们,它们不适用于任何浏览器,所以我确定这不是浏览器问题。

我只需要摆脱这个DOM Exception 18错误。

1 个答案:

答案 0 :(得分:2)

如果您的内容位于CDN(或当前任何其他主机)上,则

toDataURL()将无效 这是CANVAS元素的安全限制。

比较http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#security-with-canvas-elements有关禁止内容的详细信息

基本上每当您想要在画布中对图像或视频执行某些操作并保存结果时,您必须在同一个域中拥有所有先前内容。一种解决方法是获取所需的文件并在用户编辑时暂时保存它们