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'

または、プロキシがWebサービスからデータを取得し、応答を再試行するajaxリクエストを実行できるサーバー側プロキシを作成できます

PHP jQuery.ajax() parsererrorでデータを作成および取得する方法については、この回答を参照してください 。

于 2011-07-11T21:21:02.923 に答える
1

JSONPを使用せずに別のオリジンのデータにアクセスしようとしていて、ブラウザーがセキュリティウォールを前面に配置しています。

于 2011-07-11T20:38:10.957 に答える