我之前问了一个类似的问题,但也许这个问题要清楚一些。
我正在尝试从OSRM路由服务器检索json数据(此处为API:https://github.com/DennisOSRM/Project-OSRM/wiki/Server-api)。
我目前正在使用此代码:
$(function () {
$("#getJSON").click(function () {
var url = "http://router.project-osrm.org/viaroute?loc=51.500,0.100&loc=51.500,0.1001&jsonp=myroute";
$.ajax({
dataType: "json",
url: url,
jsonpCallback: 'myroute',
success: function (data) {
test = data.route_geometry;
alert(test);
}
});
});
});
但是我没有得到任何回应。虽然我已经尝试删除回调和“jsonp = myroute”部分但也没有成功,所以有些事情是错误的。
感谢您的帮助。
尼克
答案 0 :(得分:1)
最后,我得到了这个工作
$(function () {
var url = "http://router.project-osrm.org/viaroute?loc=51.500,0.100&loc=51.500,0.1001";
$.ajax(url, {dataType:"jsonp", jsonp:"jsonp", cache:true}).success(function() {
console.log(arguments);
});
});
如果你将url放入浏览器(由jquery生成),那么你会看到400错误,因为jquery添加了“& = [TIMESTAMP]”参数。但是你的远程服务器说,然后网址格式不正确。如果为jquery提供带有true值的“cache”选项,它将不会附加“”参数。
如果您还有其他问题,请尝试使用“始终”回调替换“成功”,因为每次回调成功时都会收到通知。因为有时jquery中存在错误,您在开发人员工具中不会注意到