Angular JSONP请求

时间:2015-05-20 00:42:31

标签: json angularjs jsonp

我正在尝试从api调用api.brewerydb.com获取jsonp响应。但是,它没有在回调时使用函数包装json。这是我的代码:

app.factory('beer', ['$http',function($http){
  var url = "http://api.brewerydb.com/v2/beers?key=MYKEY&application/json&name=oberon&callback=JSON_CALLBACK";

  $http.jsonp(url)
    .success(function(data){
      return data;
    });
}]);

它正在返回json数据,但是我在一个文件中遇到语法错误,该文件的名称是我传递的url,它包含json数据。

我发现api不支持jsonp,这就是为什么这对我不起作用

2 个答案:

答案 0 :(得分:0)

  1. 您的网址可能不正确:' ../ application / json ..'是针对其api文档中的可选HTTP_ACCEPT标头:breweryDB,因此如果不需要,请将其从var url字符串中删除。

  2. 根据他们的文档,默认返回类型为JSON,因此如果不需要,则无需传递额外参数。

  3. 根据endpoint doc

  4. 尝试此操作(针对端点/Beers

    var url = "http://api.brewerydb.com/v2/beers?key=MYKEY&name=oberon&callback=JSON_CALLBACK";

    1. 去喝啤酒吧! 编辑:代码在这里:http://jsfiddle.net/r47y3mq3/1/复制/粘贴到您的本地开发环境并使用Safari。

      使用Chrome会产生Access-Control-Allow-Origin标头问题,如下所述:access-control

答案 1 :(得分:0)

我遇到了类似的问题。您有var url = "http://api.brewerydb.com/v2/breweries?key=MYKEY&application/json&name=oberon&callback=JSON_CALLBACK"; 啤酒厂,但您正在搜索您的网址中的啤酒。

如果您尝试过:

mod = Blueprint('landing', __name__, url_prefix='/', subdomain='pt')

@mod.route('/', methods=['GET'])
def index():
    pass

...你可以在Oberon啤酒厂买到所有啤酒。