2012-03-07 48 views
1

我工作的一個在線應用程序來處理圖像。 它與本地文件(在服務器上)做的很好,但我儘快嘗試與另一個源打破。 這樣做的原因似乎是一個安全性的限制,從whatwg qoute:如何從另一個網站「getImageData」? SECURITY_ERR:DOM異常18

每當getImageData()canvas元素的原點,清潔標誌設置爲false的2D上下文的方法被調用,否則正確參數,該方法必須引發SECURITY_ERR異常。

所以我想我可以解決這個不知何故? 圖像將全部來自谷歌API,我真的想跳過保存圖像,如果我可以。

謝謝。

+1

可能重複http://stackoverflow.com/questions/4672643/html5-canvas-getimagedata-and-same -origin政策) – j08691 2012-03-07 21:22:07

+1

沒有真正複製,他試圖在子域,在這裏我想另一個域,我已經通過很多關於這個主題的其他問題瀏覽但是沒有答案的幫助。 – justanotherhobbyist 2012-03-07 21:48:12

回答

2

因爲你很可能沒有進入到源圖像從拉服務器(S),你最好的辦法是通過代理服務器的文件。

從本質上講,你送一個AJAX請求到服務器與您希望從數據的圖像的URL。您的服務器收到請求並代表您請求映像。當它獲得文件時,它然後base64對它進行編碼並將數據發回給你。由於圖像數據只是一個字符串,因此您可以創建一個圖像對象並通過canvas對其進行處理,而不用擔心原始域。

如果你願意使用jQuery,有一個偉大的插件,會做的正是這種位置爲:http://www.maxnov.com/getimagedata/

我以前使用過這個特別的插件以優異的成績。我會注意到你應該(必須)在你自己的服務器上託管代理服務器代碼。您可以使用作者的appspot帳戶,但僅限於每天的一些查詢次數,並且經常用完。筆者將介紹如何舉辦自己這裏的代理代碼:http://www.maxnov.com/getimagedata/#using-your-own-server

[HTML5畫布getImageData和同源策略(的
+0

謝謝你,我早先遇到過這種情況,但還沒有時間去嘗試它,我們會研究它。 – justanotherhobbyist 2012-03-08 00:56:50

相關問題