2013-08-01 2 views
2

Я использую html2canvas (от html2canvas.hertzen.com) для захвата снимка экрана. Я получил эту странную ошибку: Код моей веб-страницы помещается на один хост, скажем, Host A. Если моя веб-страница содержит изображение на другом хосте, скажем, Host B, то я ударил эту ошибку: Изображение с кросс-оригиналом load denied by Cross-Origin Resource Sharing policyЗагрузка изображения с использованием кросс-оригинала, запрещенного политикой совместного использования ресурсов Cross-Origin

Однако запутанная часть заключается в том, что если Host B является facebook (мое изображение является прямой ссылкой на facebook https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/372701_100000684388457_1551561655_q.jpg), тогда ошибка исчезает.

Моя функция

html2canvas([document.body], { 
        useCORS : true, 
        logging : true, 
        onrendered : function(canvas) { 
         document.body.appendChild(canvas); 
         var myImage = canvas.toDataURL("image/png"); 
         window.open(myImage); 
        } 

Каждый получил чаевые? Tks

решение

html2canvas([document.body], { 
            useCORS: true, 
            proxy: "Server", 
            onrendered : function(canvas) {        
             ListUCapture = canvas.toDataURL("image/png");               
            } 
        }); 
Server is server of node.js 

ответ

3

Если вы хотите загрузить кросс-происхождения изображения на холсте, вы должны либо служить изображение с кросс-происхождения заголовков или под того же происхождения. Это изображение под Facebook подается со следующим набором опций заголовка:

Access-Control-Allow-Origin:*

Значение, это может быть перекрестно происхождение загружено с опцией useCORS. Однако, похоже, что ваш хост B не обслуживает их с установленными наборами кросс-оригиналов.

+0

Hi Nklas, tks для вашего ответа, сейчас я попробую. – HoangHieu

Смежные вопросы