2016-09-25 104 views
-1

這是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)

+2

起初,你可以飛到[如何問](http://stackoverflow.com/help/how-to-ask)頁面... – Teemu

+0

嗨@barfly,很高興見到你! :) ...請包括安全錯誤聲明。 –

+0

錯誤語句是:[link] SecurityError:操作不安全。 錯誤來源行: \t var canvasData = canvas.toDataURL(「image/png」);但在Kaiido的幫助下,我能夠解決這個問題,現在一切正常。無論如何非常感謝您的關注。 barfly – barfly

回答

0

這是因爲您正在呼叫您的身體元素html2canvas()

您的文檔確實包含對https://code.jquery.com/ui/1.12.0/themes/base/images/ui-icons_444444_256x240.png的引用,該引用未加載正確的CORS標頭。

簡單的修復方法是在您的#innerbox元素上調用html2canvas。 在文檔的這一部分,沒有任何東西會污染你的畫布,你可以根據需要調用任何導出方法。

另請注意,canvas元素沒有crossOrigin屬性,繪製到其上下文的媒體資源必須已通過正確的跨源請求提供,但您無法在canvas級別執行此操作。

+0

非常感謝您的幫助。現在一切正常。 – barfly

+0

嗨Kaido - 首先我一切都很好,但事實並非如此。像以前一樣,它有時會奏效,而不是再次失敗。我無法理解畫布(由html2canvas製作)與沒有圖像之間的區別這兩個畫布之間的區別在哪裏。我在頭文件中包含了crossOrigin,如下所示:。這是正確的沙發?在哪裏以及如何包含CORS頭?在此先感謝您的幫助。 – barfly

+0

Cors標頭由託管要在畫布上繪製的媒體的服務器發送。如果服務器未配置爲接受crossOrigin請求,那麼您運氣不好。您必須在設置其src之前在img標籤上設置crossIrigin屬性,以便服務器知道您要遵守cors。 – Kaiido