首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在angular.js中解析JSONP $http.jsonp()响应

在angular.js中解析JSONP $http.jsonp()响应
EN

Stack Overflow用户
提问于 2012-08-22 11:36:52
回答 5查看 212.9K关注 0票数 113

我使用的是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?

EN

回答 5

Stack Overflow用户

发布于 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 }}。

票数 9
EN

Stack Overflow用户

发布于 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代码)

票数 4
EN

Stack Overflow用户

发布于 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脚本之外定义它,然后在您的模块中重新定义它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12066002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档