j0h*_*tew 5 javascript json angularjs
我无法让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);
});
});
Run Code Online (Sandbox Code Playgroud)
我在错误控制台中收到此错误. 未捕获的SyntaxError:意外的令牌:
这是掠夺者.Plunker
由于您正在调用 JSONP,这意味着返回的 json 应该包装在函数中。
例如:
JSON_CALLBACK({"status":"OK"});//this is actually how the server suppose to answer back
Run Code Online (Sandbox Code Playgroud)
所以,我看到您发送了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
| 归档时间: |
|
| 查看次数: |
9511 次 |
| 最近记录: |