3

我正在尝试使用strava v3 api获取数据。我对 JS 很陌生。我复制了示例 XMLHttpRequest 代码,但得到的只是返回的空字符串。如果我在浏览器中手动访问链接,它工作正常。我也尝试过使用 jquery 并得到同样的结果。

function reqListener() {
            console.log(this.responseText);
        };

        var oReq = new XMLHttpRequest();
        oReq.onload = reqListener;
        oReq.open("get", "https://www.strava.com/api/v3/athlete/activities?per_page=1&access_token=83ebeabdec09f6670863766f792ead24d61fe3f9", true);
        oReq.send();

有任何想法吗?

编辑:使用 jquery。还是不行

<html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    </head>
    <body>
        <span id="hello">hello</span>
        <script>
            $(document).ready(function() {
                $.getJSON("https://www.strava.com/api/v3/athlete/activities?per_page=1&access_token=83ebeabdec09f6670863766f792ead24d61fe3f9&callback=?", function(data) {
                    $('#hello').html(data);
                });
            });
        </script>
    </body>
</html>
4

2 回答 2

2

从他们的文档中:

JSON-P 回调

指定 ?callback=function_name 参数以请求 JSONP 兼容响应。这与 jQuery 等 JavaScript 库兼容。

所以我建议你使用jQuery 来触发对他们的 JSONP 请求:

$.getJSON( "https://www.strava.com/api/v3/athlete/activities?per_page=1&access_token=yourAccessToken&callback=?", function (data) {
  // your code in here
});


编辑

根据下面的评论:callback=?以这种形式(不替换?)向 jQuery 发出信号,这是一个 JSONP 请求。jQuery 本身会将?回调更改为某个函数名称,它基本上执行您传递给的函数$.getJSON()

于 2013-11-01T15:43:31.127 回答
0

你已经用标记了这个,所以使用 jQuery

$.get( "https://www.strava.com/api/v3/athlete/activities?per_page=1&access_token=83ebeabdec09f6670863766f792ead24d61fe3f9", function (results) {
  // use returned results
});
于 2013-11-01T15:38:53.893 回答