Клиентский поиск картинок Google Contact
Я выбираю контакты Google в веб-приложении с помощью Google JavaScript API и хочу получить их изображения.
Я делаю что-то вроде этого (сильно упрощено):
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);
});
});
}
Но я получаю эту ошибку как в Chrome, так и в Firefox:
Блокирован перекрестный запрос: одна и та же политика происхождения запрещает чтение удаленного ресурса вhttps://www.google.com/m8/feeds/photos/media/<user_email> / <Some_contact_id>? V = 3,0 & access_token = <затемненный>. Это можно исправить, переместив ресурс в тот же домен или включив CORS.
Просматривая заголовки ответов с конечной точки каналов / фотографий, я вижу, чтоAccess-Control-Allow-Origin: *
не отправлено, следовательно ошибка CORS я получаю.
Обратите внимание, чтоAccess-Control-Allow-Origin: *
отправляется при достиженииfeeds/contacts
конечная точка, следовательно, разрешает междоменные запросы.
Это ошибка, или я что-то упустил из их документов?