Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 从画布获取img(toDataURL)-->;受污染的画布不得出口_Jquery_Html_Canvas_Cors_Todataurl - Fatal编程技术网

Jquery 从画布获取img(toDataURL)-->;受污染的画布不得出口

Jquery 从画布获取img(toDataURL)-->;受污染的画布不得出口,jquery,html,canvas,cors,todataurl,Jquery,Html,Canvas,Cors,Todataurl,我收到以下错误消息: Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported. at draw (http://motherlang-bananalang.com/videator-b.php:172:50) at HTMLVideoElement.<anonymous> (http://) at HTMLVide

我收到以下错误消息:

Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
at draw (http://motherlang-bananalang.com/videator-b.php:172:50)
at HTMLVideoElement.<anonymous> (http://)
at HTMLVideoElement.dispatch (http:/)
at HTMLVideoElement.r.handle (http:/)
现在,这段代码所做的是在视频暂停时,它抓取视频标题并将其绘制到画布上,然后从画布上获取数据URL,将其转换为img,稍后保存到数据库和服务器中。基本上,我正在制作一个自定义视频缩略图脚本

问题是:如何消除错误并使画布不受污染。(当我在locahost上工作时,一切都很好,但现在我的网站上线了,问题就在这里)我搜索了这个问题,没有任何可能的解决方案对我有帮助(也许,因为这是我的第一个网站,我在这方面是一个完全的新手(很抱歉,如果有人要求提供网站链接-在我完成开发之前,这是一个秘密)。我已经读过关于CORS的文章,如果我想在服务器的根目录下创建该页面,它将全部消失,但我实际上希望该页面保持在它所在的位置-在公共的html/文件夹中。所以,我猜(虽然我在这一点上真的不知道,因为我做了一项关于这个主题的研究,但它并没有帮助我)我应该在某个地方使用这行代码:

crossorigin="Anonymous"
或者,我应该要求我的托管服务器支持团队更改我的网站服务器中的一些设置,以便即使页面不在服务器的根目录下也能正常工作

如果我应该使用这行代码-请,帮我找出哪里,因为我知道它与img标记有关,但我根本没有img标记

如果我可以要求我的主机提供商(it的支持团队)“更改服务器上的某些内容,以消除错误”(lol,听起来很愚蠢),那么请指出我应该要求支持团队更改什么(什么设置)

我知道我应该补充一点:

<img src="otherdomain.com" crossorigin="Anonymous" />

  <!-- Or with Javascript -->
  <script>
   var image = new Image();
   image.crossOrigin = "Anonymous";
    ...
 </script>

var image=新图像();
image.crossOrigin=“匿名”;
...
在我的代码中的某个地方,但我不知道在哪里,因为我没有任何img标记。我希望你们能修改我的代码,这样错误就会消失,或者只是给我指出解决问题的可能方法

再说一次,我是一个真正的编程新手,所以任何建议和帮助都是非常感谢的


提前谢谢。大家请安静。

对于其他无法解决此问题的人,这里有一个示例xml代码,它应该允许您的s3存储桶中的CORS

<!-- Sample policy -->
<CORSConfiguration>
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

*
得到
3000
*

没有阅读所有内容,但您需要将videoElement的
crossOrigin
属性设置为
'anonymous'
,并要求您的托管服务器支持团队更改服务器中的一些设置。不,不仅在img标签上,而且在音频和视频标签上。根据您的代码,您最好在标记中设置它
'Thank yo非常感谢你,凯伊多!我会尝试你的建议,并让你知道它们是否有效!!!嗨!!!我添加了crossOrigin=“anynymous”到视频标签,但现在视频根本不想加载!我要求我的主机服务器更改一些设置,但他们回答说这是网站开发问题,他们不能帮助我!他们建议我向htm5和php spesialist寻求帮助…请帮助!(我使用脚本将视频动态上传到amazon s3)您好!我再次解决了问题!!!我只需要更改amazon s3中bucket设置中的crossorigin CORS参数!!!!@Aneyeball您可以提供s3 xml来解决CORS问题吗?
<img src="otherdomain.com" crossorigin="Anonymous" />

  <!-- Or with Javascript -->
  <script>
   var image = new Image();
   image.crossOrigin = "Anonymous";
    ...
 </script>
<!-- Sample policy -->
<CORSConfiguration>
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>