我开始学习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 :
错误,我无法判断是否是因为返回数据格式不正确或者是什么。
答案 0 :(得分:1)
错误是因为在角度中它将尝试以json类型解析此响应。它无法解析,所以它抛出一个错误:
Uncaught SyntaxError: Unexpected token :
似乎你最好处理你自己的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;
}
jquery.ajax中的相对问题JSONP call showing "Uncaught SyntaxError: Unexpected token : "并回答使用自己的回调来处理这个问题。
答案 1 :(得分:0)
网站似乎不提供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;
})
});