【问题标题】:not able to fetch JSONP data from my own api in angularjs无法在 angularjs 中从我自己的 api 获取 JSONP 数据
【发布时间】:2014-03-24 22:35:55
【问题描述】:

我正在尝试从我自己的 api 中获取数据,但无法成功将相同的数据获取到 vegdata 变量...这里是控制器代码

    $scope.filterText = null;
$scope.vegdata =[];
$scope.init = function() {
url = "http://192.168.1.17\:5000/?callback=JSON_CALLBACK";
$http.jsonp(url).success(function(data){
        console.log(data);
        $scope.vegdata = data;  


    }).error(function(errord){
      alert(errord);
    }); 

JSOn 格式如下所示......我可以通过浏览器获取相同的格式

[{"name": "Tuar", "image": "0.0", "fat": "0.0", "alias": [{"vegname": "Tuar ", "language": "Hindi"}, {"vegname": "Red Gram", "language": "English"}, {"vegname": "Cajanus cajan", "language": "Botanical Name"}], "protein": "0.0", "energy": "0.0", "carbohydrates": "0.0"}]

【问题讨论】:

  • 是否有任何控制台错误?请提供更多信息。
  • 是网址http://192.168.1.17\:5000 中的拼写错误吗?应该是http://192.168.1.17:5000
  • 感谢您的回复...我试过 "192.168.1.17:5000?callback=JSON_CALLBACK";也没有运气;控制台没有错误...页面中没有显示数据
  • 您是否使用网络嗅探器查看发送和返回的内容?

标签: json angularjs python-2.7 jsonp


【解决方案1】:

你的回复应该是这样的:

yourCallBack([{"name": "Tuar", "image": "0.0", "fat": "0.0", "alias": [{"vegname": "Tuar ", "language": "Hindi"}, {"vegname": "Red Gram", "language": "English"}, {"vegname": "Cajanus cajan", "language": "Botanical Name"}], "protein": "0.0", "energy": "0.0", "carbohydrates": "0.0"}]);

回调 查询字符串中检索到 yourCallBack。我不知道如何用python来做,在asp.net mvc中我会这样:

string callback = Request.QueryString["callback"];

【讨论】:

  • 这是不正确的。使用 AngularJS 的 JSONP 函数; JSONP 回调函数 ( JSON_CALLBACK ) 由 Angular 框架处理,您无需创建显式函数来处理它。
  • @Reboog711:我的意思是从服务器端返回的数据必须被包装。
  • @Reboog711: callback=JSON_CALLBACK 将通过角度变成类似callback=angular.callbacks._0. 的东西。在服务器端,我们必须从查询字符串中获取这个回调并包装响应
  • 哦,你是对的。我的错;我删除了反对票。
猜你喜欢
  • 1970-01-01
  • 2020-02-07
  • 2018-10-25
  • 2012-12-07
  • 2018-09-25
  • 2012-11-24
  • 1970-01-01
  • 2021-02-06
  • 2012-09-02
相关资源
最近更新 更多