gpt4 book ai didi

cors - Picasa api 是否允许 CORS Post?

转载 作者:行者123 更新时间:2023-12-02 00:13:50 27 4
gpt4 key购买 nike

Picasa api 允许跨域 GET 请求。但是当我尝试发布图片/评论时,出现以下错误。

XMLHttpRequest cannot load https://picasaweb.google.com/data/feed/api/user/default/albumid/5825390619150171601?access_token=ya29.AHES6ZSR2XSlImdSJxNBVczzfz4DPoW3vRvywTNg8ELNs6OStqSBbTM. Origin 'http://localhost' is not allowed by Access-Control-Allow-Origin.

var url = 'https://picasaweb.google.com/data/feed/api/user/default/albumid/' + albumId + '?access_token=' + myToken;

$.ajax({
url: url,
data: f /*image file object*/,
contentType: f.type,
processData: false,
type: "POST",
success:function(data){
successCallback(data);
},
error:function(data){
failureCallback(data);
}
});

附:这里是a link到类似的 stackoverflow 讨论。

最佳答案

糟糕的是,之前没有人回答过这个问题。有一些事情值得知道在哪里...

Access-Control-Allow-Origin header 必须包含在服务器响应中并设置为您的域名或 *

当您通过将 Access-Control-Allow-Origin header 设置为 * 从 Picasa 获取公共(public)相册时

但是当您访问需要身份验证的功能时,如上面的标题 Access-Control-Allow-Origin 返回为 *.google.com

我的理论是防止人们构建使用 Google 免费存储后端但实际上是 Picasa 网站本身的竞争对手的 Picasa 网站。

最后一个重要的注意事项是您永远不应该将安全 token 作为查询字符串发送!即使您使用 https/ssl,它自己的 url 也没有加密,并且有人可以嗅探网络流量并窃取安全 token 。我什至不确定 Picasa 是否会接受它。你应该这样做:

 var url = 'https://picasaweb.google.com/data/feed/api/user/default/albumid/' + albumId;
$.ajax({
url: url,
data: f /*image file object*/,
contentType: f.type,
processData: false,
type: "POST",
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Bearer " + myToken);
},
success:function(data){
successCallback(data);
},
error:function(data){
failureCallback(data);
}
});

关于cors - Picasa api 是否允许 CORS Post?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154817/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com