【问题标题】:angular.js and untappd API, how to send a Get requestangular.js 和 untappd API,如何发送 Get 请求
【发布时间】:2017-09-26 12:39:10
【问题描述】:

我正在尝试通过 angular.js 连接到 Untappd API; API 文档说

每当您调用 API 时,您必须将您的客户端 ID 和客户端密码作为 GET 参数传递,如下所示 http://api.untappd.com/v4/method_name?client_id=CLIENTID&client_secret=CLIENTSECRET

使用 angular 我已经完成了这个简单的控制器

function UntappdController($scope,$http) {
$http.get('http://api.untappd.com/v4/user/badges/jonnyjava?client_id=XXX&client_secret=XXX').success(function(data) {
    alert('ok');
 }).
error(function(data, status, headers, config) {
    alert('ko');
});
}
UntappdController.$inject = ['$scope', '$http'];

但它不起作用。 (我总是 KO)

所以我尝试了一个 RESTful 服务。这样

angular.module('BadgeServices', ['ngResource']).
factory('Badge', function($resource){
  return $resource('http://api.untappd.com/v4/user/badges/jonnyjava/', {}, {
    query: {method:'GET',params:{client_id: 'XXX', client_secret: 'XXX'}, isArray:true}
  });
});

但这也不起作用... 我做错了什么?我是角度的新手。它看起来很简单,但我缺少一些基本的东西......

【问题讨论】:

  • 如果 API 返回 JSONP ,需要进行 jsonp 请求,否则需要使用代理进行跨域请求。并非所有 API 都有 jsonp 输出

标签: angularjs


【解决方案1】:

error 函数传递了这些变量:data, status, headers, config。检查它们的内容——我确信服务器有一些说明出了什么问题的原因。

【讨论】:

    【解决方案2】:

    对不起,我忘记了!这是我使用错误函数得到的结果..

    data: status:0 headers:function (name) {
        "use strict";
    if (!headersObj) headersObj =  parseHeaders(headers);
    if (name) {
      return headersObj[lowercase(name)] || null;
    }
        return headersObj;
    }config:[object Object]
    

    没什么用...

    【讨论】:

      【解决方案3】:

      解决了!这是一个CORS问题。如果有人感兴趣,解决方案就在这里。 stackoverflow-Angularjs issue $http.get not working

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-31
        • 1970-01-01
        相关资源
        最近更新 更多