1

我一直在为 Picasa API 上的 POST 苦苦挣扎。这是代码:

$.ajax({
    type: "POST",               
    url: 'https://picasaweb.google.com/data/feed/api/user/' + uid + '/albumid/' + album_id + '/photoid/' + photo_id,
    crossDomain: true,
    data: { content: content },
    success: function() { alert("Success"); },
    error: function() { alert('Failed!'); }
});

我已经通过 GET 毫无问题地检索了一些信息。

现在有趣的部分来了,当我尝试使用 Google 测试服务时,会出现此错误:

 XMLHttpRequest cannot load
 https://picasaweb.google.com/data/feed/api/user/userid/albumid/albumid/photoid/photoid?content=foo%bar.
 Origin http://localhost:3000 is not allowed by
 Access-Control-Allow-Origin

.

当我在 Firefox 中尝试时,请求标头方法更改为OPTIONS,状态为204: no content.
此外,我尝试更改datatype为,jsonp但随后 HTTP 方法更改为GET并检索有关图片的信息。

4

1 回答 1

3

Access-Control-Allow-Origin即将到来,因为您正在对与您当前域不同的服务器进行 ajax 调用。在这里阅读更多

jsonp对请求没有帮助,POST因为您只能GET使用jsonp.

恕我直言,您应该尝试从服务器端而不是客户端脚本发出 POST 请求。

于 2012-11-23T05:22:51.637 回答