把视频画在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报错。实在找不到原因了
getImageData
还报什么错?还是跨域吗