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

在angular.js中解析JSONP $ http.jsonp()响应,第1张

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

更新:从Angular 1.6开始

您不能再使用JSON_CALLBACK字符串作为占位符来指定回调参数值应放在何处

您现在必须像这样定义回调:

$http.jsonp('some/trusted/url', {jsonpCallbackParam: 'callback'})

通过更改/访问/声明参数

$http.defaults.jsonpCallbackParam
,默认为
callback

注意:您还必须确保将URL添加到受信任/白名单中:

$sceDelegateProvider.resourceUrlWhitelist

或通过以下方式明确信任:

$sce.trustAsResourceUrl(url)

success/error

被弃用了

$http
传统方法的承诺
success
,并
error
已被弃用,并将在V1.6.0被删除。请改用标准然后方法。如果
$httpProvider.useLegacyPromiseExtensions
设置为,
false
则这些方法将抛出
$http/legacyerror

使用:

var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts"var trustedUrl = $sce.trustAsResourceUrl(url);$http.jsonp(trustedUrl, {jsonpCallbackParam: 'callback'})    .then(function(data){        console.log(data.found);    });

上一个答案:Angular 1.5.x及更高版本

您要做的就是更改

callback=jsonp_callback
callback=JSON_CALLBACK
这样:

var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";

然后

.success
,如果返回成功,则函数应该像您拥有的那样触发。

这样,您就不必浪费全球空间。这是AngularJS文档中记录在这里。

更新了Matt Ball的小提琴以使用此方法:http :
//jsfiddle.net/subhaze/a4Rc2/114/

完整示例:

var url = "http://public-api.wordpress.com/rest/v1/sites/wtmpeachtest.wordpress.com/posts?callback=JSON_CALLBACK";$http.jsonp(url)    .success(function(data){        console.log(data.found);    });


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5060567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存