Не удается загрузить картинку

443
24 ноября 2016, 10:27

Вот так я загружаю картинки:

function loadSourcesImage(sources) {
    function getBase64Image(img) {
        var canvas = document.createElement("canvas"); // remove?
        canvas.width = img.width;
        canvas.height = img.height;
        var ctx = canvas.getContext("2d");
        ctx.drawImage(img, 0, 0);
        return canvas.toDataURL();
    }
    return $q(function(resolve, reject) {
        var promises = [];
        angular.forEach(sources, function(source) {
            promises.push($q(function(resolve, reject) {
                var imageObj = new Image();
                imageObj.crossOrigin = "anonymous";
                imageObj.onload = function() {
                    source.photo = getBase64Image(imageObj);
                    resolve(); 
                };
                imageObj.src = source.photo;
            }));
        });
        $q.all(promises).then(function() {
            resolve();
        });
    });
}

Но периодически, не для всех картинок, вываливается такая ошибка:

Access to Image at 'https://pp.vk.me/c837437/v837437845/740e/jErhvWmSCW8.jpg' from origin 'https://pp.vk.me' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access.

Как можно избавиться от нее?

Answer 1

Добрый день!

Похоже, что Вы выполняете кросс-доменный запрос. При этом Вы обращаетесь к серваку ВК, который не возвращает заголовок Access-Control-Allow-Origin (по соображениям безопасности). Но не понятно, почему оно у Вас только иногда не работает. Подробнее про кросс-доменные запросы Статья на MDN

READ ALSO
Javascript onclick

Javascript onclick

js выполняется слишком быстро как мне поставить его выполнять через время

437
Получение value для iframe

Получение value для iframe

Есть у меня код, который получает value выпадающего списка и выводит картинку, путь которой указан в value каждого элемента спискаТеперь же стала...

478
Подсветка пункта меню в Bootstrap

Подсветка пункта меню в Bootstrap

Есть одностраничный темплейт UI-Hero , который скроллит страницу при выборе пункта в меню и подсвечивает текущую секцию(Видимо, по section id)

519
Javascript: отключить Caps Lock

Javascript: отключить Caps Lock

Юзер вводит в текстовое поле информациюНужно как-то проверить включен ли Caps Lock и если да, тогда отключать его

546