0

我正在尝试学习如何通过 JQuery 发出 JSON 请求。根据我对 StackExchange Docs 的理解,这是可能的。但是,我不明白我的一些参数值应该是什么。例如,假设我正在尝试获取“JSON”和“JQuery”的标签信息。目前,我有以下内容:

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

目前,我有以下问题:

  1. 需要添加什么域url
  2. 我需要传递密钥吗?我使用 StackExchange 应用程序注册了我的应用程序,但是,我看不到如何添加该信息,或者在这种情况下是否需要它。
  3. 我的{Tags}替换格式是否正确?

我正在尝试对标签端点进行成功查询,以便我可以学习发出这种类型的请求。

谢谢!

4

2 回答 2

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 文档以获取有关可用 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

  • 我需要传递密钥吗?

  • 我的 {Tags} 替换格式是否正确?

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

于 2013-05-28T13:35:30.353 回答
0

谢谢查米卡!

我已经拿了你的小提琴并对其进行了一些扩展,所以它不仅仅是弹出警报。它现在遍历返回的信息并创建一些显示返回值的标记。

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);
  }
});
于 2013-05-28T14:47:40.127 回答