3

我一直在尝试使用 jquery xml 解析器从 picasa 中提取专辑名称。但是,当我使用“https://picasaweb.google.com”链接时,该功能不起作用。关于我做错了什么的任何线索?

 <script>
      $(document).ready(function()
    {
      $.ajax({
        type: "GET",
        url: "https://picasaweb.google.com/data/feed/api/user/userID?kind=album&access=visible",
        dataType: "xml",
        success: parseXml
      });
    });

    function parseXml(xml)
    {
      $(xml).find('entry').each(function()
      {
       $("#output").append($(this).find('title').text() + "<br />");
      });
    }
    </script>


    <div id="output"></div>
4

3 回答 3

3

对于那些感兴趣的人,下面是更正的代码

<script>
  $(document).ready(function()
{
  $.ajax({
    type: 'GET',
    url: 'https://picasaweb.google.com/data/feed/api/user/userID?kind=album&access=visible',
    crossDomain: true,
    dataType: 'jsonp',
    success: parseXml
  });
});

function parseXml(xml)
{
  $(xml).find('entry').each(function()
  {
   $("#output").append($(this).find('title').text() + "<br />");
  });
}
</script>
于 2011-07-12T12:48:41.113 回答
2

您可以通过以下方式进行跨域请求(如果服务器支持)

设置crossDomain:true (在 jquery 1.5 中添加)

和/或

通过设置dataType:'jsonp'

否则您可以创建一个服务器端代理,您可以向该代理执行 ajax 请求,该代理将依次从 Web 服务获取数据并重新响应

请参阅此答案以在 PHP jQuery.ajax() parsererror中创建和获取数据

于 2011-07-11T21:21:02.923 回答
1

您正在尝试在不使用JSONP的情况下访问不同来源的数据,并且浏览器将安全墙摆在您面前。

于 2011-07-11T20:38:10.957 回答