5

我无法让 NYTimes API 正确返回 JSON。我确信这是我对他们做错的事情。我使用 ESPN API 进行了尝试,效果很好。不知道我错过了什么。这是代码。

app.controller('espn', function($scope,$http){
      //var url = "http://api.espn.com/v1/sports/news/headlines/top?limit=9&apikey=n39jrj4s97tvhxym4qgacnrd&callback=JSON_CALLBACK";
      var url = "http://api.nytimes.com/svc/news/v3/content/all/all/.json?&limit=20&api-key=1f6ef65ff5bb290bdcb01da786c788de:2:67858849&callback=JSON_CALLBACK";
     $http.jsonp(url)
        .success( function(data){
            console.log(data);
      });
});

我在错误控制台中收到此错误。 Uncaught SyntaxError: Unexpected token :

这是笨蛋。普朗克

4

1 回答 1

3

假设您正在调用 JSONP,这意味着返回的 json 应该包装在一个函数中。

例如:

JSON_CALLBACK({"status":"OK"});//this is actually how the server suppose to answer back

所以,我看到你发送callback=JSON_CALLBACK了,但服务器没有回复函数调用JSON_CALLBACK

你需要以某种方式强制服务器支持JSONP

如果你去:
http
: //api.nytimes.com/svc/news/v3/content/all/all/.json?&limit=20&api-key=1f6ef65ff5bb290bdcb01da786c788de:2:67858849&callback=JSON_CALLBACK 你会看到服务器不是以 JSONP 响应

你也许可以破解它,看看这里:http:
//jquery-howto.blogspot.co.il/2013/09/jquery-cross-domain-ajax-request.html

于 2013-10-29T21:04:43.000 回答