我正在尝试调用此API并返回一个json对象。我想为我传入的标签返回一个顶级回答者的数组。我在$ .ajax调用中构建字符串时遇到了麻烦。
API链接 - - > http://api.stackexchange.com/docs/top-answerers-on-tags
此代码有效:
console.log(
$.ajax({
url: "http://api.stackexchange.com/2.2/tags/jquery/top-answerers/all_time?site=stackoverflow",
dataType: "jsonp",
type: "GET",
}));
但是这段代码不起作用。它在控制台“Uncaught SyntaxError:Invalid or unexpected token”
中抛出错误var getTopAnswerers = function(tag) {
// tag is a string passed in via the html form
// the parameters we need to pass in our request to StackOverflow's API
var request = {
tag: tag,
period: 'all_time',
site: 'stackoverflow',
};
$.ajax({
url: "http://api.stackexchange.com/2.2/tags{tag}/top-answerers/",
data: request,
dataType: "json",
type: "GET",
})
所以我尝试了硬编码标签值,仍然没有运气。 API会返回一个标记对象列表,以便显示为问号标记列表。 http://api.stackexchange.com/2.2/tags?tag=jquery&period=all_time&site=stackoverflow
var getTopAnswerers = function() {
var request = {
tag: 'jquery',
period: 'all_time',
site: 'stackoverflow',
};
$.ajax({
url: "http://api.stackexchange.com/2.2/tags",
data: request,
dataType: "json",
type: "GET",
})
};
我也尝试在json和jsonp之间切换dataType。
TL; DR:请帮我构建$ .ajax的正确字符串以与API接口。
编辑: 有人指出我有一些错误的逗号。修复了逗号仍然没有构建字符串的问题。
var getTopAnswerers = function() {
var request = {
tag: 'jquery',
period: 'all_time',
site: 'stackoverflow'
};
$.ajax({
url: "http://api.stackexchange.com/2.2/tags",
data: request,
dataType: "json",
type: "GET"
})
};
答案 0 :(得分:3)
您需要在解析Deferred对象时调用处理程序
function getTopAnswerers(tag) {
var request = {
site: 'stackoverflow'
};
$.ajax({
url: "http://api.stackexchange.com/2.2/tags/"+tag+"/top-answerers/all_time",
data: request,
dataType: "json",
type: "GET"
}).done(function(data) {
console.log(data);
});
}
getTopAnswerers('jquery');
getTopAnswerers('html');

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
&#13;