這是barfly, 我有一個canvaced-images的問題。 (securityError) 我構建了一個設計訪問卡的工具。在這裏,我使用幾個畫布作爲文本,一個作爲徽標。沒有插入圖片的標誌,一切工作正常。但是當我插入圖像時,我得到了securityError。 (一開始它也起作用,我簡直無法弄清楚,哪些變化導致這個問題)。現在我試圖製作一個html2canvas,然後通過ajax將它們發送到一個php文件。但仍然是同樣的問題。它在沒有標識的情況下工作,並在插入徽標時引發securityError。這使我最困惑。 我在我的服務器上設置了全部內容。該網址是:http://obs-design.de/visitenkarten/ 添加圖片,dobleclick任何文本canvaces點擊編輯器上的圖像圖標。 繼續之後,html2canvas顯示在原始應用程序下。 (這裏仍然有圖像)。上傳的圖像文件可以在以下位置調用:http://obs-design.de/visitenkarten/canvasimg/visitenkarte.png(僅限於沒有圖像)。 有沒有人對我有暗示?提前致謝。畫布圖像(securityError)
回答
這是因爲您正在呼叫您的身體元素html2canvas()
。
您的文檔確實包含對https://code.jquery.com/ui/1.12.0/themes/base/images/ui-icons_444444_256x240.png
的引用,該引用未加載正確的CORS標頭。
簡單的修復方法是在您的#innerbox
元素上調用html2canvas。 在文檔的這一部分,沒有任何東西會污染你的畫布,你可以根據需要調用任何導出方法。
另請注意,canvas元素沒有crossOrigin
屬性,繪製到其上下文的媒體資源必須已通過正確的跨源請求提供,但您無法在canvas級別執行此操作。
非常感謝您的幫助。現在一切正常。 – barfly
嗨Kaido - 首先我一切都很好,但事實並非如此。像以前一樣,它有時會奏效,而不是再次失敗。我無法理解畫布(由html2canvas製作)與沒有圖像之間的區別這兩個畫布之間的區別在哪裏。我在頭文件中包含了crossOrigin,如下所示:。這是正確的沙發?在哪裏以及如何包含CORS頭?在此先感謝您的幫助。 – barfly
Cors標頭由託管要在畫布上繪製的媒體的服務器發送。如果服務器未配置爲接受crossOrigin請求,那麼您運氣不好。您必須在設置其src之前在img標籤上設置crossIrigin屬性,以便服務器知道您要遵守cors。 – Kaiido
- 1. 畫布圖像
- 2. 畫布:drawImage不畫圖像到畫布
- 3. HTML畫布圖像
- 4. 畫布擺動圖像
- 5. HTML5畫布旋轉圖像
- 6. HTML5畫布圖像操作
- 7. HTML5畫布圖像旋轉
- 8. 畫布圖像平滑
- 9. TCL TK畫布像素圖
- 10. 用畫布導出圖像
- 11. HTML5畫布增強圖像
- 12. HTML5旋轉畫布圖像
- 13. 畫布上的圖像
- 14. 改變畫布圖像
- 15. 畫布圖像編輯器
- 16. 變化畫布圖像
- 17. 從畫布下載圖像
- 18. Android畫布圖像縮放
- 19. html圖像ID和畫布
- 20. 畫布矩形圖像
- 21. 畫布不重繪圖像
- 22. 數據/圖像到畫布
- 23. 圖像不畫布上
- 24. 中心圖像內畫布
- 25. Javascript DOM圖像到畫布
- 26. HTML5畫布分解圖像
- 27. 裁剪圖像到畫布
- 28. 在畫布上擦圖像
- 29. WPF:圖像與畫布
- 30. 圖像選擇畫布
起初,你可以飛到[如何問](http://stackoverflow.com/help/how-to-ask)頁面... – Teemu
嗨@barfly,很高興見到你! :) ...請包括安全錯誤聲明。 –
錯誤語句是:[link] SecurityError:操作不安全。 錯誤來源行: \t var canvasData = canvas.toDataURL(「image/png」);但在Kaiido的幫助下,我能夠解決這個問題,現在一切正常。無論如何非常感謝您的關注。 barfly – barfly