使用AngularJS进行JSONP调用

时间:2017-03-09 09:06:18

标签: angularjs json jsonp

我正在尝试使用AngularJS进行JSON调用。控制台不会抛出错误,也不会以任何方式工作。有人能帮忙吗?

$scope.click = function() {
  $http.jsonp('https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&  gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=test&callback=JSON_CALLBACK')
  .success(function(data) { 
    var results = data.query.pages;
    angular.forEach(results, function(v,k)  {
      $scope.articles.push({title: v.title, body: v.extract})
    })
  })
  .error(function () {
    alert("error");
  })
};

1 个答案:

答案 0 :(得分:0)

来自角度文档 您不能再使用JSON_CALLBACK字符串作为占位符来指定回调参数值应该去的位置。

var url = "https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&  gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=test";
$sce.trustAsResourceUrl(url);

$scope.click = function() {
  $http.jsonp(url, {jsonpCallbackParam: 'callback'})
  .success(function(data) { 
    var results = data.query.pages;
    angular.forEach(results, function(v,k)  {
      $scope.articles.push({title: v.title, body: v.extract})
    })
  })
  .error(function () {
    alert("error");
  })
};