【问题标题】:Get List of Albums Google Picasa获取 Google Picasa 的专辑列表
【发布时间】:2015-05-23 00:55:10
【问题描述】:

我正在开发一个从 Google Picasa 获取相册和图片的网络应用程序。

我不断收到 204,没有来自服务器的内容响应。

此外,我收到错误消息:请求的资源上没有“Access-Control-Allow-Origin”标头。

我在开发者控制台中拥有正确的 javascript 来源凭据,但我仍然收到此错误。我尝试了很多方法来制作请求,但没有一个成功。

我已经使用 tokeninfo 端点验证了访问令牌,所以我相信我正在发出正确类型的请求。

这是我提出的要求:

    $.ajax({ //gives 204 no content response
                url: "https://picasaweb.google.com/data/feed/api/user/default", //use default to get current logged in user
                type: "GET",
                beforeSend: function(xhr){ //headers
                    xhr.setRequestHeader('Authorization', 'Bearer ' + access_token);
                    xhr.setRequestHeader('GData-Version', '2');
                },
                dataType: "json",
                success: function(){
                    console.log("success");
                },
                fail: function(){
                    console.log("fail");
                }
            })
            .done(function(data){
                console.log(data);
            });

另外,发出未经身份验证的请求:

                    $.ajax({ 
                url: "https://picasaweb.google.com/data/feed/api/user/default", //use default to get current logged in user
                type: "GET",
                dataType: "json",
                beforeSend: function(xhr){
                    xhr.setRequestHeader('GData-Version', 2);
                },
                success: function(){
                    console.log("success");
                },
                fail: function(){
                    console.log("fail");
                }
            })
            .done(function(data){
                console.log(data);
            });

【问题讨论】:

    标签: javascript ajax google-api google-signin picasa


    【解决方案1】:

    Picasa Web API 对经过身份验证的请求执行 not support CORS。您必须从服务器而不是通过 JavaScript 发出请求。

    【讨论】:

    • 但是我不能通过删除标头来发出未经身份验证的请求吗?如果我这样做,它仍然不起作用。您显示的同一链接指出您可以进行未经身份验证的获取,但不能进行 POST。
    • 链接的答案是两年前的,所以他们可能根本不再支持 CORS。
    • 来自Picasa API 您无需进行身份验证即可检索有关公共相册的数据,但要创建、更新或删除内容,您必须使用身份验证部分中讨论的方法之一进行身份验证.但是,我仍然收到 CORS 错误,所以您可能是对的。
    • 该文档没有说明对 jsonp 或 CORS 的支持,所以我会说不支持客户端访问。
    • 有什么更新吗,先生们?我需要通过试用 Angular 4 应用程序从 Picasa 获取受 oauth 保护的内容。那么我应该使用像 nodejs/express 这样的一些服务器端逻辑来包装我的请求吗?我可以通过jsonp 获取开放内容,但休息时运气不佳
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2012-05-10
    • 2015-03-28
    • 2011-12-26
    • 2013-12-26
    • 2011-11-12
    • 2013-10-03
    相关资源
    最近更新 更多