2009-10-13 2 views
4

У меня есть блог в google (blogger), и я хочу получить данные json с внешнего сайта, чтобы интегрироваться в мои сообщения. Я использовал библиотеку jquery и функцию getJson, чтобы получить данные json, но ничего не возвращается.blogger jquery call

Blogger ограничивает любые внешние вызовы jquery? Есть идеи? Спасибо

+0

Plz разместить свой код – jantimon

+0

Вы не можете сделать междоменное AJAX звонки – ErsatzRyan

ответ

7

Вы можете получить регистрацию http://code.google.com/apis/gdata/docs/json.html. Но посмотрите на режим JSONP, используемый jquery, и вы увидите, как это сделать. Например, в следующем коде показано, как получить комментарий фид от API Blogger:

var BloggerImporter = { 

    getComments : function(username){ 

     var feedURL = "http://"+username+".blogspot.com/feeds/comments/default"; 

     var paras = { 
      alt : 'json-in-script' 
     }; 

     $.ajax({ 
      url: feedURL, 
      type: 'get', 
      dataType: "jsonp", 
      success: BloggerImporter.onGotCommentData, 
      data: paras 
     }); 


    }, 

    /** 
    * Parse the JSON comment data returned by the Google Blogger API 
    */ 
    onGotCommentData : function(data){ 

     var feed = data.feed; 
     var entries = feed.entry || []; 
     var txt = ""; 

     for (var i = 0; i < entries.length; ++i) { 
      var entry = entries[i]; 
      var title = entry.title.$t; 
      txt += title; 
     } 

     alert(txt); 
    } 
} 
+1

Это работает очень хорошо. Должен приниматься как ответ. – UpHelix

+1

Отличный ответ. Если бы только кто-то мог отметить это как правильно ... – kelloti

4

Вот код, я использую, чтобы встраивать весь мой блог. Не хорошо для SEO, поскольку Google никогда не увидит его, но все, о чем я действительно заботился, делало страницу блога наполовину достойной.

<div id="blogContainer"></div> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$.ajax({ 
    url: 'http://www.blogger.com/feeds/<your blogger ID>/posts/default?alt=json-in-script', 
    type: 'get', 
    dataType: "jsonp", 
    success: function(data){ 
     for (var i = 0; i < data.feed.entry.length; i++){ 
      $('#blogContainer').append('<div class="blogItem"><h2>' 
        + data.feed.entry[i].title.$t + '<span class="author"> by ' 
        + data.feed.entry[i].author[0].email.$t + '</span></h2>' 
        + data.feed.entry[i].content.$t 
        + '<br clear="all"></div>'); 
     } 
    } 
}); 
</script> 
+0

+1, короткий и к делу. Я не ожидал, что Google по-прежнему будет поддерживать API 1.0. – Blazemonger