当前位置: 首页 > 面试题库 >

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

华欣怡
2023-03-14
问题内容

我正在使用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;
    });

如何访问/解析返回的函数包装的JSON?


问题答案:

更新:从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/legacy error

使用:

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_callbackcallback=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);
    });


 类似资料:
  • 问题内容: 可能这是最简单的事情,但是我无法以角度将字符串解析为Int。 我正在尝试做的是: 如何求和这些num1和num2值? 谢谢! 问题答案: 您不能(至少目前)不能使用内部角度表达式,因为它们不会直接求值。引用 文档 : Angular不使用JavaScript 来评估表达式。相反,Angular的服务处理这些表达式。 角表达式不必访问全局变量喜欢 ,或。此限制是有意的。它可以防止意外访问

  • 可能,这是最简单的事情,但是我不能在angular中将一个字符串解析为Int.. 我想做的是: 如何对这些num1和num2值求和? 谢谢!

  • 本文向大家介绍AngularJS中的JSONP实例解析,包括了AngularJS中的JSONP实例解析的使用技巧和注意事项,需要的朋友参考一下 概念       首先呢,Json和JSONP是不一样的哦。Json呢,是众多数据存储的其中一种格式,是数据书写方式的其中一种。好比是大中华众多诗体的一种(比如说是七言诗吧)。这种诗体规定了: 这种诗体要包含题目,每行诗句的字数(7个字) 等等的文本格式。

  • 本文向大家介绍vbs 解析json jsonp的方法,包括了vbs 解析json jsonp的方法的使用技巧和注意事项,需要的朋友参考一下 我收集了三种常见 json jsonp 的格式,因为很多人找我说如何用正则提取某个字符串,我看了下,要么是json,要么是jsonp, 正则简直浪费,比如那种空间里说说的数据,上百条的信息,你正则个P,而且还有回复里的格式也差不多的,所以最好的方法还是解析。

  • 问题内容: 我收到此响应的结果是对服务器的GET请求 我只想从上述json响应中提取的值。 我正在使用此代码来获得此响应 我的问题是,我该如何解析并获取only 标签的值。谢谢 问题答案: 您可以解析当前的json字符串以从中获取它:

  • 问题内容: 我正在尝试使用C#从rest api json响应中提取一个值。 我有以下代码: 在“响应”消息中,我得到了一个json内容,如下所示: 如何从返回的json响应结果消息中提取以下嵌套值“ id”:“ 521cfcd840926a0b3500449e”? 我正在使用C#。 问题答案: 1>添加此namspace。使用Newtonsoft.Json.Linq; 2>使用此源代码。