从外部服务器检索json数据

时间:2013-04-20 17:26:02

标签: javascript jquery ajax json openstreetmap

我之前问了一个类似的问题,但也许这个问题要清楚一些。

我正在尝试从OSRM路由服务器检索json数据(此处为API:https://github.com/DennisOSRM/Project-OSRM/wiki/Server-api)。

我目前正在使用此代码:

http://jsfiddle.net/FhfVW/10/

$(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”部分但也没有成功,所以有些事情是错误的。

感谢您的帮助。

尼克

1 个答案:

答案 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中存在错误,您在开发人员工具中不会注意到