所以我在Rackspace云文件上有一些视频文件,但由于我使用HTML5函数(.toDataURL()),"SECURITY_ERR:DOM异常18"不断被抛出。当我在服务器上使用视频文件时,我的代码工作正常。
所以我阅读了关于CORS的信息,并修改了我的Rackspace云文件标题,如下所示:
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 错误不断被抛出。我不知道问题出在哪里。我检查了HTTP标头是否由我在Rackspace上的视频文件输出,web-sniffer.net 它们是,那么有什么问题,为什么它不起作用?
我已经在IE9,Chrome 19,Safari 5.1.2和Aurora 12.0a2上尝试过,它们不适用于任何这些浏览器,所以我确定这不是浏览器问题。
我只需要摆脱这个 DOM 异常 18 错误。
toDataURL() 将不起作用,如果您的内容位于 CDN(或当前主机以外的任何其他主机上)这是 CANVAS 元素的安全限制。
比较 http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#security-with-canvas-elements,了解有关禁止内容的详细信息
基本上,每当您想对画布中的图像或视频执行某些操作并保存结果时,您都必须将所有先前的内容放在同一个域中。 一种解决方法是获取所需的文件并在用户编辑时临时保存它们