把視頻畫在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報錯。實在找不到原因了
網站調用別的域名的video,利用canvas截圖,報錯?。?!
當年話下
2019-03-06 16:17:24