2013-05-28 62 views
0

我想了解如何通過JQuery創建JSON請求。根據我對StackExchange Docs的理解,這是可能的。但是,我不明白我的一些參數值應該是什麼。例如,假設我試圖獲取'JSON'和'JQuery'的標籤信息。目前,我有以下幾點:在StackOverflow中使用JQuery API

var url = "/2.1/tags/JQuery,JSON/info?callback=?"; 
$.getJSON(url, function (tags) { 
    alert(tags.length); 
});      

目前,我有以下問題:

  1. 什麼域需要被添加到url
  2. 我需要傳遞一個密鑰嗎?我使用StackExchange應用程序註冊了我的應用程序,然而,我沒有看到如何添加這些信息,或者在這種情況下甚至需要它。
  3. 我的{Tags}替換格式是否正確?

我試圖成功查詢標記端點,以便我可以學習使這種類型的請求。

謝謝!

回答

1

嘗試下面的代碼,

var URL = "http://api.stackoverflow.com/1.1/tags/"; 
$.ajax({ 
    dataType: 'jsonp', 
    jsonp: 'jsonp', 
    url: URL, 
    success: function(val) { 
     alert(val.total); 
    }, 
    error: function(val) { 
     console.log('error'); 
     console.log(arguments); 
    } 
}); 

閱讀API documentation有關可用的API

http://jsfiddle.net/J6u5C/

更新的更多細節


請參閱基礎上,您的評論 http://jsfiddle.net/J6u5C/1/

var URL ="http://api.stackexchange.com/2.1/tags/jquery;json/info?site=stackoverflow"; 
$.ajax({ 
    dataType: 'jsonp', 
    jsonp: 'jsonp', 
    url: URL, 
    success: function(val) { 
     alert(val.items.length); 
    }, 
    error: function(val) { 
     console.log('error'); 
     console.log(arguments); 
    } 
}); 

和解答你的問題的更新的樣本,

  • 需要被添加到URL什麼領域?

http://api.stackexchange.com

  • 我需要通過一個按鍵?

沒有

  • 是我的{}標籤更換的格式是否正確?

格式由;(分號)分隔不是,(逗號)

+0

我看到的文檔。但是我有一個關於2.0文檔http://api.stackexchange.com/docs/tags-by-name的具體問題。我試圖獲得有關標籤名稱的信息。從我的理解2.0不支持jsonp。這就是爲什麼我對語法感到困惑。我究竟做錯了什麼? –

+0

@EelsFan:查看更新後的答案 –

+0

@EelsFan:沒有投票? –

0

感謝Chamika!

我已經把你的小提琴擴大了一點,所以它不只是彈出一個提醒。它現在迭代返回的信息並創建一些顯示返回值的標記。

http://jsfiddle.net/J6u5C/2/

var URL ="http://api.stackexchange.com/2.1/tags/jquery%3Bjson/info?site=stackoverflow"; 
$.ajax({ 
    dataType: 'json', 
    jsonp: 'json', 
    url: URL, 
    success: function(val) { 
    $.each(val, function(item, vals) { 
     var my_div = $('body').append('<div>' + item + '</div>'); 
     if (item === 'items') { 
      $.each(vals, function(idx, tag) { 
       my_div 
        .append('<div class="tag">' + tag.count + ' : ' + tag.name + '</div>') 
      }); 
     } 
     else if (item === 'quota_remaining' || item === 'quota_max') { 
      my_div 
       .append('<div class="quota">' + vals + '</div>') 
     } 
     else if (item === 'has_more') { 
      my_div 
       .append('<div class="hasmore">' + vals + '</div>') 
     } 
    }); 
    }, 
    error: function(val) { 
    console.log('error'); 
    console.log(arguments); 
    } 
});