网站调用别的域名的video,利用canvas截图,报错!!!

把视频画在canvas上用drawImage()时没有报错,但是利用getImageData获取canvas画布的像素时报错

“Uncaught DOMException: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data. at HTMLImageElement.img.onload”;

于是在网上查了一下原来是跨域的问题,于是就照着别人的方法去做。

1.在video标签里添加 crossOrigin="anonymous";添加后现在连视频都没法显示了。
提示:“No 'Access-Control-Allow-Origin' header is present on the requested resource.”;

2.在上面的错误中再继续找解决办法,原因是要配置apache反向代理(用的是PHPstud集成包)于是配置

在 httpd.conf 里面取消注释以下两行  
**#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_http_module modules/mod_proxy_http.**

在vhosts.conf

把一个共享磁盘映射到本地配置的虚拟主机域名(这个磁盘用来专门放视频的)
<VirtualHost 1270.0.1:8080>
DocumentRoot "Z:"
<Directory "Z:">

  省略......

</Directory>
</VirtualHost>

网站域名
<VirtualHost _default_:80>
DocumentRoot "D:phpstudyWWW"
<Directory "D:phpstudyWWW">

  省略......

</Directory>

ProxyRequests Off
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>
  ProxyPass / http://127.0.0.1:8080/
  ProxyPassReverse / http://127.0.0.1:8080/

</VirtualHost>

以上这些都是正常的,就是在截图调用getImageData报错。实在找不到原因了

阅读 2.6k
1 个回答

getImageData还报什么错?还是跨域吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题