所以我在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了解有关禁止的内容的详细信息
基本上,当你想在画布中处理图像或视频并保存结果时,你必须在同一个域中拥有所有先前的内容。一种解决方法是获取所需的文件并在用户编辑时临时保存它们