【问题标题】:Angular $http jsonp: how to parse through dataAngular $http jsonp:如何解析数据
【发布时间】:2015-01-08 17:15:58
【问题描述】:

我开始学习 Angular,我想尝试一下 $http 调用函数。 我基本上想向外部 API 发出 get 请求:

angular.module('pokedexApp')
  .controller('MainCtrl', function ($scope, $http) {
    var response;
    $http.jsonp("http://pokeapi.co/api/v1/pokemon/1/").success(function(response) {
        response = response;
    })

    $scope.pokemon = response;
  });

我可能完全错了它是如何工作的。我基本上是想{{ pokemon }}出一个回复来测试一下。

我收到Uncaught SyntaxError: Unexpected token : 错误,我不知道是因为返回数据的格式不正确还是什么原因。

【问题讨论】:

    标签: ajax angularjs api http


    【解决方案1】:

    该错误是因为在 Angular 中它会尝试以 json 类型解析此响应。并且解析失败,所以报错:

    Uncaught SyntaxError: Unexpected token :        
    

    在 angularjs 中,您最好自己处理 jsonp 响应。

      $scope.triggerJsonp = function(){
          $http.jsonp("http://pokeapi.co/api/v1/pokemon/1/", {params: {'callback':'eqfeed_callback'}});  
      };
      window.eqfeed_callback  = function(data){
          $scope.response = data;
      }
    

    Here is jsfiddle.

    jquery.ajax JSONP call showing "Uncaught SyntaxError: Unexpected token : " 中的相关问题并回答使用自己的回调来处理。

    【讨论】:

    • 有趣。感谢您也显示相关问题。清理一切。
    【解决方案2】:

    该网站似乎不提供 JSONP 支持 - https://github.com/phalt/pokeapi_issues/issues/30

    您的 $http 请求很好,但您目前在“响应”方面存在范围问题。为了正确定义作用域变量,应该这样编写代码:

    angular.module('pokedexApp')
       .controller('MainCtrl', function ($scope, $http) {
            $http.jsonp("http://pokeapi.co/api/v1/pokemon/1/").success(function(response) {
                $scope.pokemon = response;
            })    
       });
    

    【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2011-10-19
    • 2011-04-02
    • 2018-12-05
    • 2012-03-16
    • 1970-01-01
    相关资源
    最近更新 更多