这是我上传图片的方式:
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();
});
});
}
但周期性地,并非所有图片,都会出现以下错误:
从来源“ https://pp.vk.me/c837437/v837437845/740e/jErhvWmSCW8.jpg ”访问图像已被 CORS 策略阻止:无“访问控制” -Allow-Origin' 标头出现在请求的资源上。因此不允许访问源“ http://localhost:8000 ”。
你怎么能摆脱它?
下午好!
看起来您正在执行跨域请求。在这种情况下,您正在访问 VK 服务器,它不会返回 Access-Control-Allow-Origin 标头(出于安全原因)。但不清楚为什么它只是有时对你不起作用。了解更多关于跨域查询的MDN 文章