Recuperación del lado del cliente de las imágenes de contacto de Google
Estoy buscando contactos de Google en una aplicación web utilizando la API de JavaScript de Google y me gustaría recuperar sus imágenes.
Estoy haciendo algo como esto (muy simplificado):
var token; // let's admit this is available already
function getPhotoUrl(entry, cb) {
var link = entry.link.filter(function(link) {
return link.type.indexOf("image") === 0;
}).shift();
if (!link)
return cb(null);
var request = new XMLHttpRequest();
request.open("GET", link.href + "?v=3.0&access_token=" + token, true);
request.responseType = "blob";
request.onload = cb;
request.send();
}
function onContactsLoad(responseText) {
var data = JSON.parse(responseText);
(data.feed.entry || []).forEach(function(entry) {
getPhotoUrl(e, function(a, b, c) {
console.log("pic", a, b, c);
});
});
}
Pero estoy recibiendo este error tanto en Chrome como en Firefox:
Solicitud de origen cruzado bloqueada: la misma política de origen no permite leer el recurso remoto enhttps://www.google.com/m8/feeds/photos/media/<user_email> / <some_contact_id>? v = 3.0 & access_token = <obfuscated>. Esto se puede solucionar moviendo el recurso al mismo dominio o habilitando CORS.
Al mirar los encabezados de respuesta desde el punto final de feeds / fotos, puedo ver queAccess-Control-Allow-Origin: *
no se envía, de ahí el error CORS que recibo.
Tenga en cuenta queAccess-Control-Allow-Origin: *
se envía al llegar alfeeds/contacts
punto final, por lo tanto permitiendo solicitudes de dominio cruzado.
¿Es esto un error, o me perdí algo de sus documentos?