我正在使用Google JavaScript API獲取web應用程序中的谷歌聯繫人,我想檢索它們的圖片。谷歌聯繫人圖片的客戶端檢索
我在做這樣的事情(很大程度上簡化):
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這樣的錯誤:
跨來源請求阻止:相同Origin Policy不允許讀取遠程資源https://www.google.com/m8/feeds/photos/media/<user_email>/< some_contact_id>?v = 3.0 & access_token = < obfuscated>。這可以通過將資源移動到相同的域或啓用CORS來解決。
當查看來自feeds/photos端點的響應標頭時,我可以看到Access-Control-Allow-Origin: *
未發送,因此我得到CORS錯誤。
請注意,Access-Control-Allow-Origin: *
在到達feeds/contacts
端點時發送,因此允許跨域請求。
這是一個錯誤,還是我錯過了他們的文檔中的東西?