Jquery XML解析URL问题

时间:2011-07-11 20:35:23

标签: jquery xml picasa

我一直在尝试使用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>

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:2)

您可以通过

执行跨域请求(如果服务器支持)

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

和/或

设置dataType:'jsonp'

或者您可以创建一个服务器端代理,您可以执行ajax请求,代理将从Web服务获取数据并重新获取响应

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

答案 2 :(得分:1)

您尝试访问different origin上的数据而不使用JSONP,浏览器会在您面前放置安全墙。