我使用的是angular的$http.jsonp()
请求,它成功地返回了封装在函数中的json:
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=jsonp_callback";
$http.jsonp(url).
success(function(data, status, headers, config) {
//what do I do here?
}).
error(function(data, status, headers, config) {
$scope.error = true;
});
如何访问/解析返回的function-wrapped JSON?
发布于 2014-12-24 10:31:14
这非常有帮助。Angular的工作原理并不完全像JQuery。它有自己的jsonp()方法,该方法确实需要在查询字符串的末尾加上"&callback=JSON_CALLBACK“。下面是一个例子:
var librivoxSearch = angular.module('librivoxSearch', []);
librivoxSearch.controller('librivoxSearchController', function ($scope, $http) {
$http.jsonp('http://librivox.org/api/feed/audiobooks/author/Melville?format=jsonp&callback=JSON_CALLBACK').success(function (data) {
$scope.data = data;
});
});
然后在您的Angular模板中显示或操作{{ data }}。
发布于 2012-08-22 22:36:17
只要函数jsonp_callback
在全局作用域中可见,这对您来说应该很好:
function jsonp_callback(data) {
// returning from async callbacks is (generally) meaningless
console.log(data.found);
}
var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=jsonp_callback";
$http.jsonp(url);
完整演示:http://jsfiddle.net/mattball/a4Rc2/ (免责声明:我以前从未编写过任何AngularJS代码)
发布于 2016-05-16 18:06:25
您仍然需要在参数中设置callback
:
var params = {
'a': b,
'token_auth': TOKEN,
'callback': 'functionName'
};
$sce.trustAsResourceUrl(url);
$http.jsonp(url, {
params: params
});
其中'functionName‘是对全局定义函数的字符串化引用。您可以在angular脚本之外定义它,然后在您的模块中重新定义它。
https://stackoverflow.com/questions/12066002
复制相似问题