所以我在rackspace云文件上有一些视频文件,但是由于我使用html5函数(.todataurl()),“security_err:dom exception 18”一直被抛出。当我在服务器上使用视频文件时,我的代码可以正常工作。
因此,我阅读了关于cors的资料,并修改了我的rackspace cloud文件头,如下所示:

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错误一直被抛出。我不知道有什么问题。我用web-sniffer.net检查了我的视频文件是否在rackspace上输出了http头文件,它们是,那么问题是什么,为什么不工作?
我在ie9、chrome 19、safari 5.1.2和aurora 12.0a 2上都试过,它们在这些浏览器上都不工作,所以我确信这不是浏览器问题。
我只需要去掉这个dom异常18错误。

最佳答案

如果内容位于CDN(或当前主机以外的任何其他主机)上,则todataurl()将不起作用。
这是canvas元素的安全限制。
比较http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#security-with-canvas-elements了解有关禁止的内容的详细信息
基本上,当你想在画布中处理图像或视频并保存结果时,你必须在同一个域中拥有所有先前的内容。一种解决方法是获取所需的文件并在用户编辑时临时保存它们

09-11 19:53