0

グーグルAPIでjson形式に変換されたRSSフィードを読みたいです。アラートをいくつか入れましたが、ページを実行するとアラートが表示されません。なんで ?

これが私のjQueryコードです:

function getFeed(url){
        $('#screen #content').html("");
        $.ajax({
            url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q='+url,
            crossDomain: true,
            dataType: 'json',
            success: function(data) {
                alert(3);
                $.each(data.entries, function(i,results){
                    alert(1);

                });
            }
        });
    }
    getFeed('http://www.nytimes.com/services/xml/rss/nyt/Science.xml');

ありがとう !

4

2 に答える 2

3

Ajaxリクエストは、ブラウザーの同一生成元ポリシーによって制限されます。スクリプトが実行されているページと同じドメインにないajaxを介してサーバーと直接通信することはできません。したがって、jqueryajaxのjsonp機能を使用する必要があります。

$(document).ready(function () {

        function getFeed(url) {
            $.ajax({
                url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=' + url,
                crossDomain: true,
                dataType: 'jsonp',
                success: function (data) {
                    console.log(data);

                },
                error: function (data) {
                    console.log(data);
                }
            });
        }
        getFeed('http://www.nytimes.com/services/xml/rss/nyt/Science.xml');

    });

dataType:'jsonp'はここでのキーワードです。

ここで「jsonp」を検索して詳細を読むことができます:http: //api.jquery.com/jQuery.ajax/

またはここ: http: //bob.ippoli.to/archives/2005/12/05/remote-json-jsonp/

于 2012-09-03T09:01:38.933 に答える
0
  1. リクエストしているホストが、サードパーティまたはクロスブラウザのajax呼び出しを許可していない可能性もあります。
  2. リクエストの結果としてJSONを期待している場合は、を使用します$.getJSON()

ありがとうRahul

于 2012-09-03T08:51:55.277 に答える