StackOverflow API 使用JSONP:
所有 API 响应都是 JSON,我们确实支持带有jsonp 查询参数的 JSONP 。
(强调我的)
因此,您需要将 AJAX 调用转换为使用$.ajax
并正确填充选项以发出请求:
$.ajax({
url: 'http://api.stackoverflow.com/1.1/questions',
dataType: 'jsonp', // let jQuery know this is a JSONP request.
jsonp: 'jsonp', // the callback parameter SO uses is called 'jsonp'
data: { // options that will get placed in the query string
pagesize: 20
},
success: function (data) {
$.each(data.questions, function (i, data) {
var question_list = '<li><a href="#">' + data.title + '</a></li>';
$(".questions").append(question_list);
})
}
});
示例:http: //jsfiddle.net/QydkZ/1/
我调整了成功回调来做一些更具可读性的事情,但概念是一样的。
作为旁注,您使用的 StackOverflow API 版本已弃用。这是针对 API 的 2.1(当前版本)编写此代码的方式:
$.ajax({
url: 'http://api.stackexchange.com/2.1/questions',
dataType: 'jsonp',
jsonp: 'jsonp',
data: {
pagesize: 20,
site: 'stackoverflow'
},
success: function (data) {
$.each(data.items, function (i, data) {
var question_list = '<li><a href="#">' + data.title + '</a></li>';
$(".questions").append(question_list);
})
}
});
示例:http: //jsfiddle.net/k4AnW/1/
我强烈建议改用当前版本的 API。