无法完成.getJSON请求?
首先,我要完成一项跨域请求。 这里是我用作参考的Strava API白皮书的链接。 Strava维基百科
请参阅下面使用的代码。 如果无法用jQuery执行请求,那么您能否给我一个另一种方法来做到这一点? (例如AJAX)我已经完成了我的研究,但是我承认我不了解足够的理解为什么请求不起作用。 我需要在显示警报之前插入一个等待响应的参数吗?还是隐含的? 提前致谢!
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery demo</title>
</head>
<body>
<a href="http://jquery.com/">jQuery</a>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("a").click(function(event){
$.getJSON('http://www.strava.com/api/v1/segments/637215', function(data) {
alert(data);
});
});
});
</script>
</body>
</html>
有关为什么您的解决方案无法按预期工作的更多信息,请参阅:访问控制 - 允许来源多个来源域?
尝试使用.ajax
方法,而不是dataType: "jsonp"
:
$.ajax({
url: "http://www.strava.com/api/v1/segments/637215",
dataType: 'jsonp',
success: function(data){
console.log(data);
}
});
运行此获取以下内容:
{"segment":{"id":637215,"name":"Highway 33 Climb - Matilija Lake to Rose Valley","distance":16779.2,"elevationGain":1101.1,"elevationHigh":1070.9,"elevationLow":289.54,"averageGrade":4.64087,"climbCategory":"1"}}
例
请注意,返回的数据似乎有错误,但我可以看到它。 (请参阅下面的Musa的评论)。
编辑
或者你可以改变:
$.getJSON('http://www.strava.com/api/v1/segments/637215', function(data) {
console.log(data);
});
至:
$.getJSON('http://www.strava.com/api/v1/segments/637215?callback=?', function(data) {
console.log(data);
});
这会导致.getJSON()
改为使用jsonp
。
If the URL includes the string "callback=?" (or similar, as defined by the server-side API), the request is treated as JSONP instead.
例
链接地址: http://www.djcxy.com/p/45963.html