维基百科的 $http.jsonp 不起作用
$http.jsonp for wikipedia doesnt work
我在 jQuery 中有一个小项目,它通过 jsonp 技术调用维基百科 API。
这是 jQuery:
中的代码片段
// load wikipedia data
var wikiUrl = 'http://en.wikipedia.org/w/api.php?action=opensearch&search=' + cityStr + '&format=json&callback=wikiCallback';
var wikiRequestTimeout = setTimeout(function(){
$wikiElem.text("failed to get wikipedia resources");
}, 8000);
$.ajax({
url: wikiUrl,
dataType: "jsonp",
jsonp: "callback",
success: function( response ) {
var articleList = response[1];
for (var i = 0; i < articleList.length; i++) {
articleStr = articleList[i];
var url = 'http://en.wikipedia.org/wiki/' + articleStr;
$wikiElem.append('<li><a href="' + url + '">' + articleStr + '</a></li>');
};
clearTimeout(wikiRequestTimeout);
}
});
我正在尝试在 AngularJS 中转换为 $http.jsonp,这里是试图获得相同结果的代码片段:
var wikiUrl = appSettings.wiki + $scope.address.city + '&format=json&callback=wikiCallback';
$http.jsonp(wikiUrl).success(function(res){
console.log(res);
}).error(function(){
console.log('Wrong entry for Wikipedia!');
});
但它什么也没得到,我有以下错误
Uncaught ReferenceError: wikiCallback is not defined
请帮忙。
Angular 希望您将 JSONP 回调函数名称定义为 JSON_CALLBACK
。所以你的代码应该是:
var wikiUrl = appSettings.wiki + $scope.address.city + '&format=json&callback=JSON_CALLBACK';
参考:$http.jsonp.
我在 jQuery 中有一个小项目,它通过 jsonp 技术调用维基百科 API。 这是 jQuery:
中的代码片段 // load wikipedia data
var wikiUrl = 'http://en.wikipedia.org/w/api.php?action=opensearch&search=' + cityStr + '&format=json&callback=wikiCallback';
var wikiRequestTimeout = setTimeout(function(){
$wikiElem.text("failed to get wikipedia resources");
}, 8000);
$.ajax({
url: wikiUrl,
dataType: "jsonp",
jsonp: "callback",
success: function( response ) {
var articleList = response[1];
for (var i = 0; i < articleList.length; i++) {
articleStr = articleList[i];
var url = 'http://en.wikipedia.org/wiki/' + articleStr;
$wikiElem.append('<li><a href="' + url + '">' + articleStr + '</a></li>');
};
clearTimeout(wikiRequestTimeout);
}
});
我正在尝试在 AngularJS 中转换为 $http.jsonp,这里是试图获得相同结果的代码片段:
var wikiUrl = appSettings.wiki + $scope.address.city + '&format=json&callback=wikiCallback';
$http.jsonp(wikiUrl).success(function(res){
console.log(res);
}).error(function(){
console.log('Wrong entry for Wikipedia!');
});
但它什么也没得到,我有以下错误
Uncaught ReferenceError: wikiCallback is not defined
请帮忙。
Angular 希望您将 JSONP 回调函数名称定义为 JSON_CALLBACK
。所以你的代码应该是:
var wikiUrl = appSettings.wiki + $scope.address.city + '&format=json&callback=JSON_CALLBACK';
参考:$http.jsonp.