鍍金池/ 問答/HTML5  PHP  Linux  HTML/ 網(wǎng)站調(diào)用別的域名的video,利用canvas截圖,報(bào)錯(cuò)?。?!

網(wǎng)站調(diào)用別的域名的video,利用canvas截圖,報(bào)錯(cuò)?。?!

把視頻畫在canvas上用drawImage()時(shí)沒有報(bào)錯(cuò),但是利用getImageData獲取canvas畫布的像素時(shí)報(bào)錯(cuò)

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

于是在網(wǎng)上查了一下原來是跨域的問題,于是就照著別人的方法去做。

1.在video標(biāo)簽里添加 crossOrigin="anonymous";添加后現(xiàn)在連視頻都沒法顯示了。
提示:“No 'Access-Control-Allow-Origin' header is present on the requested resource.”;

2.在上面的錯(cuò)誤中再繼續(xù)找解決辦法,原因是要配置apache反向代理(用的是PHPstud集成包)于是配置

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

在vhosts.conf

把一個(gè)共享磁盤映射到本地配置的虛擬主機(jī)域名(這個(gè)磁盤用來專門放視頻的)
<VirtualHost 1270.0.1:8080>
DocumentRoot "Z:"
<Directory "Z:">

  省略......

</Directory>
</VirtualHost>

網(wǎng)站域名
<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>

以上這些都是正常的,就是在截圖調(diào)用getImageData報(bào)錯(cuò)。實(shí)在找不到原因了

回答
編輯回答
不歸路

getImageData還報(bào)什么錯(cuò)?還是跨域嗎

2017年7月18日 23:52